IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec Python Discussion :

Resize de widget et de fenêtres


Sujet :

GTK+ avec Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Resize de widget et de fenêtres
    Bonjour à tous,
    J'ai écrit un bout de code permettant d'inclure MPlayer dans une fenêtre GTK.
    Le voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    import pygtk
    pygtk.require('2.0')
    import gtk
    import os
    PATH_mkfifo = '/tmp/mplayer'
     
    class MPlayer(gtk.Socket):
     
        def __init__(self, id):
            gtk.Socket.__init__(self)
            self.tube = PATH_mkfifo + str(id)
            try:
                os.unlink(self.tube)
            except:
                pass
            os.mkfifo(self.tube)
            os.chmod(self.tube, 0666)
     
        def execmplayer(self, cmd):
            i = open(self.tube,'w')
            i.write(cmd+"\n")
            i.flush()
     
        def playfile(self, wid):
            os.system("mplayer -slave -really-quiet -vo x11 -wid %s -idle -input file=%s &"%(wid, self.tube))
     
        def loadfile(self, filename):
            self.execmplayer("loadfile %s"%(filename))
     
        def quit(self):
            self.execmplayer("quit")
     
     
    window = gtk.Window()
    vbox = gtk.VBox()
    da = gtk.DrawingArea()
    #da.set_size_request(200,100)
    vbox.pack_start(da, True, True, 0)
    window.add(vbox)
    window.connect("destroy", gtk.main_quit)
    window.show_all()
    print da.window.xid
    stream = MPlayer(da.window.xid)
    stream.playfile(da.window.xid)
    stream.loadfile("/home/alex/Downloads/HeBeDragons.m4v")
    gtk.main()
    Celui-ci fonctionne correctement grâce aux GtkSocket et au mode "slave" de mplayer.

    Bref mon problème concerne plutôt GTK je pense.
    En effet quand je lance mon programme, le fichier vidéo se lit sans soucis. Le problème est que si la fenêtre est plus petite que ma vidéo celle-ci est coupée, et quand je maximise la fenêtre, ma vidéo est centrée à l'intérieur de celle-ci mais en aucun cas re-dimensionée à la taille entière de ma fenêtre.

    J'ai trouvé un petit bout de code faisant à peu prés la même chose que moi et qui a le comportement que je cherche. Celui-ci est ici: http://www.dinointeractive.com/?p=36
    La personne qui a écrit ce bout de code à utilisé Glade, ce que je ne souhaite pas faire. Ayant parcouru tout son fichier python, je ne comprends toujours pas comment il fait, j'imagine donc que cela est géré par Glade.

    J'aimerais donc savoir comment dois-je faire pour que ma vidéo colle à la taille de ma fenêtre dans mon code.
    Toute aide est la bienvenue.
    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Je serais surpris que Glade change quelque chose à la situation. T'as essayé -vo xv? La dernière fois que j'ai essayé mplayer avec -vo x11, la vidéo n'était pas redimensionnée quand la fenêtre changeait.

Discussions similaires

  1. python: gestion de positionnement des widgets dans une fenêtre
    Par noramokh dans le forum Général Python
    Réponses: 2
    Dernier message: 04/05/2014, 17h21
  2. Surveiller les resize des widgets
    Par hizoka dans le forum PyQt
    Réponses: 3
    Dernier message: 29/12/2013, 15h28
  3. Réponses: 2
    Dernier message: 23/01/2013, 12h16
  4. Réponses: 12
    Dernier message: 21/05/2010, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo