<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://doc.qtfr.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Documentation Qtfr - version_PyQt4</title>
  <link>http://doc.qtfr.org/</link>
  <description>La documentation francophone sur Qt</description>
  <language>fr</language>
  <pubDate>Thu, 03 Sep 2009 16:42:30 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Utilisation de PyQt avec Qt 4.4</title>
    <link>http://doc.qtfr.org/post/2008/05/01/Utilisation-de-PyQt-avec-Qt-44</link>
    <guid isPermaLink="false">urn:md5:0e18e4ab0dd062e5d371fd6f4a996b52</guid>
    <pubDate>Thu, 01 May 2008 15:14:00 +0200</pubDate>
    <dc:creator>Visiteur</dc:creator>
        <category>Documentation</category>
        <category>installation</category><category>Linux</category><category>version_PyQt4</category><category>version_Qt4</category>    
    <description>&lt;p&gt;Tool69 vous propose, étape par étape, d'utiliser PyQt avec Qt4.4 RC1.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Version&lt;/strong&gt;&amp;nbsp;: Qt4/PyQt4 &lt;br /&gt;
&lt;strong&gt;Auteur&lt;/strong&gt;&amp;nbsp;: &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=428&quot;&gt;Tool69&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Le document est disponible en 2 formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voir la &lt;a href=&quot;http://kib2.free.fr/Articles/Installation_d%C3%A9taill%C3%A9e_de_PyQt4.4.html&quot;&gt;page sur le blog de l'auteur&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libre téléchargement en PDF&amp;nbsp;: &lt;a href=&quot;http://doc.qtfr.org/public/2008/Install_Qt44.pdf&quot;&gt;téléchargez&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
    
          <enclosure url="http://doc.qtfr.org/public/2008/Install_Qt44.pdf"
      length="63431" type="application/pdf" />
    
    
      </item>
    
  <item>
    <title>Rapid GUI Programming with Python and Qt</title>
    <link>http://doc.qtfr.org/post/2007/11/25/Rapid-GUI-Programming-with-Python-and-Qt</link>
    <guid isPermaLink="false">urn:md5:059ab3483cd6e9db77e42dbd0960a4e7</guid>
    <pubDate>Sun, 25 Nov 2007 15:27:00 +0100</pubDate>
    <dc:creator>Visiteur</dc:creator>
        <category>Livres</category>
        <category>livre</category><category>version_PyQt4</category>    
    <description>&lt;p&gt;Mark Summerfield déjà co-auteur du célèbre livre &lt;a href=&quot;http://doc.qtfr.org/post/2007/02/20/C-GUI-Programming-with-Qt-4&quot; hreflang=&quot;fr&quot;&gt;C++ GUI Programming with Qt 4&lt;/a&gt; (traduit en Français aux éditions Pearson Education) nous livre un nouvel opus sur la librairie Qt4 mais dédié cette fois-ci au language Python.&lt;/p&gt;


&lt;p&gt;Merci à &lt;a href=&quot;http://kib2.free.fr/&quot; hreflang=&quot;fr&quot;&gt;tool69&lt;/a&gt; pour cette revue, qui donne envie de se plonger dans la lecture de cet ouvrage.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Auteur&lt;/strong&gt;&amp;nbsp;: &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=428&quot;&gt;tool69&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://vig.prenhall.com/catalog/academic/product/0,1144,0132354187,00.html&quot;&gt;&lt;img src=&quot;http://doc.qtfr.org/public/livres/rapidguipyqt.png&quot; alt=&quot;rapidguipyqt.png&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Informations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Auteurs&lt;/em&gt;&amp;nbsp;: Mark Summerfield&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Editeur&lt;/em&gt;&amp;nbsp;: &lt;a href=&quot;http://vig.prenhall.com/&quot; hreflang=&quot;en&quot;&gt;Prentice Hall PTR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Langue&lt;/em&gt;&amp;nbsp;: anglais&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ISBN&lt;/em&gt;&amp;nbsp;: 0132354187&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Pages&lt;/em&gt;&amp;nbsp;: 460&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Public visé&lt;/em&gt;&amp;nbsp;: tout développeur Python, même débutant&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Page du livre&lt;/em&gt;&amp;nbsp;: &lt;a href=&quot;http://www.qtrac.eu/pyqtbook.html&quot; hreflang=&quot;en&quot;&gt;http://www.qtrac.eu/pyqtbook.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Résumé et revue&lt;/h3&gt;

&lt;p&gt;Mark Summerfield déjà co-auteur du célèbre livre &lt;a href=&quot;http://doc.qtfr.org/post/2007/02/20/C-GUI-Programming-with-Qt-4&quot; hreflang=&quot;fr&quot;&gt;C++ GUI Programming with Qt 4&lt;/a&gt; (traduit en Français aux éditions Pearson Education) nous livre un nouvel opus sur la librairie Qt4 mais dédiée cette fois-ci au language Python.&lt;/p&gt;


&lt;p&gt;Parlons de la qualité du livre lui-même&amp;nbsp;: une belle couverture rigide sur laquelle figure l'image du satellite Hubble en orbite autour de la Terre. Le sens&amp;nbsp;? Python est utilisé par la NASA pour calibrer et analyser les données recueillies par celui-ci. Que ce soit le papier, la qualité d'impression ou les multiples diagrammes, il n'y a rien à redire si ce n'est qu'on aimerait voir ce genre d'initiatives plus souvent chez nos éditeurs, surtout eû égard au prix pratiqué.&lt;/p&gt;


&lt;p&gt;Passons maintenant au contenu proprement dit, qui se divise en quatre parties distinctes (cinq en fait si l'on compte les divers appendices qui représentent à eux seuls presque une centaine de pages)&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Programmation avec Python;&lt;/li&gt;
&lt;li&gt;Programmation d'interfaces graphiques niveau basique;&lt;/li&gt;
&lt;li&gt;Programmation d'interfaces graphiques niveau intermédiaire;&lt;/li&gt;
&lt;li&gt;Programmation d'interfaces graphiques niveau avancé;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On peut s'interroger sur le bien fondé de la première partie, en effet il serait étonnant qu'une personne ne connaissant pas le language se risque à acheter un tel livre. Et pourtant Mark réussi là un véritable tour de force&amp;nbsp;: on balaye les fonctionnalités du language par la pratique, avec des exemples vraiment très pertinents. J'avoue même avoir appris certains concepts dont je ne soupçonnais pas l'existence, sans doute faute d'en avoir eû un réel besoin. Les fonctions partielles par exemple ont un intérêt certain dans la suite de l'ouvrage. De la même façon, vous pourrez y voir de multiples références au PEPs (Python Enhancement Proposals&amp;nbsp;: les fonctionnalités à venir de Python).&lt;/p&gt;


&lt;p&gt;Si l'anglais peut rebuter au départ, surtout lorsqu'il est technique, on se surprend rapidement à lire un thème donné sans avoir recours au dictionnaire (je précise que je n'ai aucune thèse en anglais). Le style se veut simple et efficace, sans être simpliste.&lt;/p&gt;


&lt;p&gt;Autant vous rassurer tout de suite, le contenu des trois parties consacrées au vif du sujet, la programmation d'interfaces graphiques n'est pas du tout un plagiat du livre précédent&amp;nbsp;: &lt;em&gt;C++ GUI Programming with Qt 4&lt;/em&gt;. On y aborde évidemment plus ou moins les mêmes sujets, mais un réel travail a été fourni sur les nouvelles fonctionnalités apparues depuis la version 4.2 de Qt4. Citons par exemple un chapitre entier consacré à l'architecture du Graphics view&amp;nbsp;: un réel plus par rapport au livre précédent.&lt;/p&gt;


&lt;p&gt;Les exemples sont abondants, collent à la pratique et vous pourrez en outre les récupérez gratuitement sur la &lt;a href=&quot;http://www.qtrac.eu/pyqtbook.html&quot; hreflang=&quot;en&quot;&gt;page&lt;/a&gt; que Marc à consacré à son ouvrage. Sachez du reste qu'elle est remise à jour régulièrement, afin d'améliorer encore certains exemples et de proposer un errata.&lt;/p&gt;


&lt;p&gt;Citons aussi quelques petits &lt;strong&gt;cadeaux&lt;/strong&gt; vraiment bien venus&amp;nbsp;: des utilitaires écrits par l'auteur afin de gérer au mieux vos projets PyQt4.&lt;/p&gt;


&lt;p&gt;A chaque fois, on vous place en situation de développeur et vous serez amené à résoudre quelques exercices proposés en fin de chapitre.&lt;/p&gt;


&lt;p&gt;J'ai beaucoup apprécié l'éventail d'alternatives à un problème donné. Comment imprimer le contenu d'un &lt;code&gt;QTextEdit&lt;/code&gt; par exemple&amp;nbsp;? Marc vous propose trois méthodes abondamment commentées, de la plus simple à la plus complexe, à vous de choisir ensuite en fonction de vos besoins, de votre niveau ou du temps que vous allez y passer.&lt;/p&gt;


&lt;p&gt;Vous l'aurez donc compris, j'ai été plus que séduit par ce livre. On ne passe pas son temps à comparer Qt à tel autre toolkit comme le font certains ouvrages (d'ailleurs, serait-ce vraiment la peine ?), on pratique avant tout, et les repères ne manquent pas: index abondant, diagrammes de classes, éventail visuel de tous les widgets.&lt;/p&gt;


&lt;p&gt;Des critiques&amp;nbsp;? Un chapitre de &lt;em&gt;C++ GUI Programming with Qt 4&lt;/em&gt; était consacré au développement de plugins avec C++, il est absent ici, comme dans tout livre sur Python consacré à ce vaste sujet. Il est vrai que les possibilités dynamiques qu'offrent Python permettent de pallier à ce problème assez facilement, mais encore faut-il mettre la main à la pâte. S'il est absent, c'est à mon avis surtout parce qu'il n'existe pas de recette toute faite, mais j'aurais au moins aimé disséquer un exemple simple sur le sujet.&lt;/p&gt;


&lt;p&gt;Enfin contrairement à beaucoup d'autres ouvrages, &lt;a href=&quot;http://www.qtrac.eu/pyqtbook.html&quot; hreflang=&quot;en&quot;&gt;Rapid GUI Programming with Python and Qt&lt;/a&gt; se distingue aussi par la façon dont il a été écrit. Pas de LaTeX, de Scribus, de QuarkXPress ni même de InDesign ici, mais une alternative originale et légère&amp;nbsp;: &lt;a href=&quot;http://www.qtrac.eu/lout.html&quot; hreflang=&quot;en&quot;&gt;Lout&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Un conteneur pour MPlayer (utilisation de QProcess)</title>
    <link>http://doc.qtfr.org/post/2007/03/21/Un-conteneur-pour-MPlayer-utilisation-de-QProcess</link>
    <guid isPermaLink="false">urn:md5:afa61892107e63fea382cac105f90974</guid>
    <pubDate>Mon, 02 Apr 2007 09:01:00 +0200</pubDate>
    <dc:creator>IrmatDen</dc:creator>
        <category>Tutoriels</category>
        <category>class_QProcess</category><category>class_QWidget</category><category>intégration</category><category>MPlayer</category><category>version_PyQt4</category><category>version_Qt3</category><category>version_Qt4</category>    
    <description>&lt;ul&gt;
&lt;li&gt;Comment visualiser une vidéo dans Qt&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Comment intégrer MPlayer et Qt&amp;nbsp;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qt, dans son souci de framework généraliste, n'implémente pas toujours tout ce dont on peut avoir besoin, surtout lorsque cela n'est pas d'usage courant. Les vidéos font partie de ce qui n'était pas couvert par Qt (maintenant supporté depuis la 4.4 par le biais de Phonon). Cependant, un grand nombre de librairies et autres backends existent.
Nous allons voir comment utiliser l'un d'entre eux: &lt;a href=&quot;http://www.mplayerhq.hu/design7/news.html&quot;&gt;MPlayer&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Version concernée&lt;/strong&gt;&amp;nbsp;: Toutes versions (exemple fait avec C++/Qt4 et une version pyQt disponible)&lt;br /&gt;
&lt;strong&gt;Auteur&lt;/strong&gt;&amp;nbsp;: Denys Bulant (&lt;a href=&quot;http://qtfr.org/forum/profile.php?id=291&quot;&gt;IrmatDen&lt;/a&gt;), &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=2344&quot;&gt;alteo_gange&lt;/a&gt; et &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=4253&quot;&gt;egaudrain&lt;/a&gt; pour les versions pyQt&lt;br /&gt;
&lt;strong&gt;Résumé&lt;/strong&gt;&amp;nbsp;: utiliser MPlayer conjointement à Qt pour afficher une vidéo&lt;br /&gt;
&lt;strong&gt;Fil de discussion&lt;/strong&gt;&amp;nbsp;: &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=14373&quot;&gt;Forum&lt;/a&gt;&lt;/p&gt;    &lt;h3&gt;Généralité sur MPlayer en tant que backend...&lt;/h3&gt;

&lt;p&gt;La particularité de MPlayer est de ne pas s'intégrer par le biais d'une api, mais par un process externe. Les applications désirant l'utiliser en tant que tel, doivent communiquer avec lui par le biais de son flux d'entrée. Les flux de sorties (standard/erreur) peuvent bien sûr être analysés pour récupérer diverses infos sur la vidéo ainsi que les réponses à des requêtes pouvant être formulées par votre application.&lt;/p&gt;


&lt;p&gt;Voici ce dont vous aurez besoin&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mplayerhq.hu/design7/dload.html&quot;&gt;MPlayer&lt;/a&gt; installé, et fonctionnel,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html&quot;&gt;La page des options de MPlayer&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Et &lt;a href=&quot;http://www.mplayerhq.hu/DOCS/tech/slave.txt&quot;&gt;la liste des options en slave mode&lt;/a&gt; pour mplayer (c'est toutes les manip qui vous sont permises, donc considérez ce fichier comme votre référence ;)).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour utiliser MPlayer comme backend, il y a 2 arguments à lui passer &lt;strong&gt;impérativement&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l'id du widget à utiliser pour le rendu par le biais de &quot;-wid&quot;&lt;/li&gt;
&lt;li&gt;&quot;-slave&quot; qui permet de le mettre en mode esclave, d'où le nom  ;-)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemple de code lançant MPlayer comme backend:&lt;/p&gt;
&lt;pre class=&quot;cpp&quot;&gt;QStringList args;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// On demande à utiliser mplayer comme backend&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-slave&amp;quot;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#ifdef Q_WS_WIN&lt;/span&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// reinterpret_cast&amp;lt;unsigned int&amp;gt; obligatoire, HWND ne se laissant pas convertir gentiment ;)&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;reinterpret_cast&amp;lt;unsigned int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#else&lt;/span&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// Sur linux, pas de manip pour Wid :)&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;A savoir aussi que sur Windows, je n'ai trouvé que directx comme driver de sortie :/ Cela ne concerne pas les autres OS; lors de mon test sur Linux, je n'ai eu aucun driver à spécifier et cela marche nickel.&lt;/p&gt;


&lt;p&gt;Et apparemment les seuls drivers compatibles pour un embarquement de MPlayer sous Linux sont xv, x11 et gl. Et sous Linux, il faut faire attention à avoir un widget de taille raisonnable pour contenir la vidéo. En effet, contrairement à Windows, un resize à la volée n'est pas possible :/&lt;/p&gt;


&lt;p&gt;Ensuite, le mode esclave permet donc de commander MPlayer pour:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;obtenir des infos (ex: get_video_resolution/get_time_length/...)&lt;/li&gt;
&lt;li&gt;lui donner un ordre (ex: play/pause/quit/...)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tout ce qui lui est transmis, doit être terminé par un retour chariot. Si vous demandiez une information, elle sera renvoyée sur la sortie standard, avec un début de ligne propre à chaque commande (ex: get_video_resolution renverra &lt;code&gt;ANS_VIDEO_RESOLUTION='resX x resY'&lt;/code&gt;)&lt;/p&gt;


&lt;h3&gt;Exemple complet&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;http://doc.qtfr.org/public/2006/previewqtmplayerui.png&quot; alt=&quot;Illustration MPlayer/Qt&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Voici un programme proposant les fonctionnalités suivantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lecture d'une vidéo&lt;/li&gt;
&lt;li&gt;arrêt&lt;/li&gt;
&lt;li&gt;avancer/reculer en déplaçant le slider&lt;/li&gt;
&lt;li&gt;affiche le log de toutes ce qui sort sur les flux stdout et stderr de mplayer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vous le trouverez en annexe de ce tuto&amp;nbsp;; seuls les points essentiels sont repris ici par souci de clarté.
Pour vos tests, &lt;strong&gt;pensez à changer&lt;/strong&gt; les valeurs de &lt;code&gt;mPlayerPath&lt;/code&gt; et &lt;code&gt;movieFile&lt;/code&gt;, en haut du fichier.&lt;/p&gt;


&lt;p&gt;Ce n'est pas un frontend complet, mais cela vous permettra de voir fonctionner Qt 4 avec MPlayer en utilisant &lt;code&gt;QProcess&lt;/code&gt;  :)&lt;/p&gt;


&lt;p&gt;Comme dit dans l'introduction, une version pyQt a été réalisée par &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=2344&quot;&gt;alteo_gange&lt;/a&gt;. Elle est disponible sur le &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=31501#p31501&quot;&gt;forum&lt;/a&gt;. A noter qu'une version multi-plateforme a été postée par &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=4253&quot;&gt;egaudrain&lt;/a&gt;; le code est dispo à ce &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=37823#p37823&quot;&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;class&lt;/span&gt; PlayerWidget: &lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt; QWidget
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
    Q_OBJECT
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt;:
    PlayerWidget&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QWidget *parent =&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        :QWidget&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;parent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, isPlaying&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        renderTarget = &lt;span style=&quot;color: #0000dd;&quot;&gt;new&lt;/span&gt; QWidget;
        renderTarget-&amp;gt;setSizePolicy&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QSizePolicy&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QSizePolicy::&lt;span style=&quot;color: #00eeff;&quot;&gt;Fixed&lt;/span&gt;, QSizePolicy::&lt;span style=&quot;color: #00eeff;&quot;&gt;Fixed&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        renderTarget-&amp;gt;setAttribute&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Qt::&lt;span style=&quot;color: #00eeff;&quot;&gt;WA_PaintOnScreen&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        renderTarget-&amp;gt;setMinimumSize&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;320&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;240&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        mplayerProcess = &lt;span style=&quot;color: #0000dd;&quot;&gt;new&lt;/span&gt; QProcess&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        connect&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess, &lt;span style=&quot;color: #0000ff;&quot;&gt;SIGNAL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;readyReadStandardOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;,
            &lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;, SLOT&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;catchOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        connect&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess, &lt;span style=&quot;color: #0000ff;&quot;&gt;SIGNAL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;finished&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt;, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;,
            &lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;, SLOT&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerEnded&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt;, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;protected&lt;/span&gt;:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; closeEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QCloseEvent *e&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt;:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;bool&lt;/span&gt; startMPlayer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        QStringList args;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On demande à utiliser mplayer comme backend&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-slave&amp;quot;&lt;/span&gt;;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// Et on veut ne pas avoir trop de chose à parser  :) &lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-quiet&amp;quot;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #339900;&quot;&gt;#ifdef Q_WS_WIN&lt;/span&gt;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// reinterpret_cast&amp;lt;qlonglong&amp;gt; obligatoire, winId() ne se laissant pas convertir gentiment ;)&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;reinterpret_cast&amp;lt;qlonglong&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-vo&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;directx:noaccel&amp;quot;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#else&lt;/span&gt;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// Sur linux, aucun driver n'a été nécessaire et pas de manip pour Wid :)&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        log-&amp;gt;append&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;Video output driver may not be necessary for your platform. &lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\&lt;/span&gt;
                    Check: http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html &lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\&lt;/span&gt;
                    at the VIDEO OUTPUT DRIVERS section.&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#endif&lt;/span&gt;
&amp;nbsp;
        args &amp;lt;&amp;lt; movieFile;
        qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #00eeff;&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toUtf8&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On parse la stdout et stderr au même endroit, donc on demande à &amp;quot;fusionnner&amp;quot; les 2 flux&lt;/span&gt;
        mplayerProcess-&amp;gt;setProcessChannelMode&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;MergedChannels&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        mplayerProcess-&amp;gt;start&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerPath, args&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;!mplayerProcess-&amp;gt;waitForStarted&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;3000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;allez, cherche le bug :o&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On récupère les infos de base&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_video_resolution&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_time_length&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;bool&lt;/span&gt; stopMPlayer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;quit&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;!mplayerProcess-&amp;gt;waitForFinished&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;3000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ZOMG, ça plante :(&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;true&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt; slots:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; catchOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess-&amp;gt;canReadLine&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            QByteArray buffer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess-&amp;gt;readLine&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            log-&amp;gt;append&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// On vérifie si on a eu des réponses&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_video_resolution : ANS_VIDEO_RESOLUTION='176 x 144'&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_VIDEO_RESOLUTION&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;21&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; sepIndex = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;'x'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; resX = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;left&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;sepIndex&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toInt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; resY = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;mid&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;sepIndex&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toInt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                renderTarget-&amp;gt;setMinimumSize&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;resX, resY&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_time_length : ANS_LENGTH=45.28&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_LENGTH&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;11&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;float&lt;/span&gt; maxTime = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;toFloat&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                timeLine-&amp;gt;setMaximum&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;static_cast&amp;lt;int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;maxTime&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_time_pos : ANS_TIME_POSITION=2.4&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_TIME_POSITION&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;float&lt;/span&gt; currTime = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;toFloat&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                timeLine-&amp;gt;setValue&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;static_cast&amp;lt;int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;currTime&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; pollCurrentTime&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_time_pos&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff0000;&quot;&gt;// Dirige la timeline&lt;/span&gt;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; timeLineChanged&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; pos&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;seek &amp;quot;&lt;/span&gt; + QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pos&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; 2&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toUtf8&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff0000;&quot;&gt;// Play/stop&lt;/span&gt;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; switchPlayState&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; mplayerEnded&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; exitCode, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt; exitStatus&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt;:
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    QWidget *renderTarget;
    QProcess *mplayerProcess;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/pre&gt;


&lt;h3&gt;Si vous avez des remarques...&lt;/h3&gt;

&lt;p&gt;Si vous avez besoin d'un éclaircissement, vous pouvez le faire &lt;a href=&quot;http://qtfr.org/forum/viewtopic.php?pid=14373#p14373&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
    
          <enclosure url="http://doc.qtfr.org/public/2007/qt_mplayer.tar.gz"
      length="2452" type="application/x-gzip" />
    
    
      </item>
    
  <item>
    <title>Utilisation du designer avec PyQt4</title>
    <link>http://doc.qtfr.org/post/2007/03/30/Utilisation-du-designer-avec-PyQt4</link>
    <guid isPermaLink="false">urn:md5:2bb55125ec6435107c6eab7fe948c3f2</guid>
    <pubDate>Fri, 30 Mar 2007 21:03:00 +0200</pubDate>
    <dc:creator>Visiteur</dc:creator>
        <category>Documentation</category>
        <category>designer</category><category>version_PyQt4</category>    
    <description>&lt;ul&gt;
&lt;li&gt;Comment utiliser le designer avec PyQt4&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Comment intégrer les widgets créer avec le designer dans un programme python&amp;nbsp;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cet article va détailler l'intégration d'un widget créer avec le designer Qt dans un programme python, en utilisant le binding python de &lt;a href=&quot;http://www.riverbankcomputing.co.uk/pyqt/&quot; hreflang=&quot;en&quot;&gt;PyQt&lt;/a&gt; de Riverbank. Il va aussi détailler l'utilisation de &lt;code&gt;pyuic&lt;/code&gt;, qui permet de générer le code python à partir des fichiers créés par le designer.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Auteur&lt;/strong&gt;&amp;nbsp;: Kib² (&lt;a href=&quot;http://forum.qtfr.org/profile.php?id=428&quot;&gt;tool69&lt;/a&gt;) &lt;br /&gt;
&lt;strong&gt;Version&lt;/strong&gt;&amp;nbsp;: PyQt4 (&lt;a href=&quot;http://www.riverbankcomputing.co.uk/pyqt/&quot; hreflang=&quot;en&quot;&gt;Riverbank&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;L'article est disponible sur le site de &lt;strong&gt;Kib²&lt;/strong&gt;&amp;nbsp;: &lt;a href=&quot;http://kib2.webfactional.com/blog/2006/nov/11/comment-utiliser-qtdesigner-avec-pyqt4/&quot; title=&quot;http://kib2.webfactional.com/blog/2006/nov/11/comment-utiliser-qtdesigner-avec-pyqt4/&quot;&gt;http://kib2.webfactional.com/blog/2...&lt;/a&gt;.&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Si jamais vous avez déjà programmé en Python avec la bibliothèque d'origine TkInter, vous savez déjà que coder une interface utilisateur à la main est une tâche à la fois longue et fastidieuse.&lt;/p&gt;
&lt;p&gt;
QtDesigner est l'outil fourni par la bibliothèque Qt qui vous permet de réaliser une GUI (en Français une IHM&amp;nbsp;: Interface Homme-Machine), par le biais d'un système de glisser-déposer. Il est ainsi possible de créer trois types de «&amp;nbsp;formes&amp;nbsp;» : des widgets, des dialogues ou des applications, tout ceci vous étant demandé par QtDesigner lors de création d'une nouvelle «&amp;nbsp;form&amp;nbsp;» (à partir du menu, choisir File/New Form).&lt;/p&gt;
&lt;p&gt;
QtDesigner ne génère pas de code source directement. Il peut uniquement sauvegarder votre «&amp;nbsp;forme&amp;nbsp;» avec l'extension «&amp;nbsp;.ui », un dérivé du format XML. Il vous est alors possible, grâce à un module nommé «&amp;nbsp;uic&amp;nbsp;» (lui même écrit en Python) de générer le code Python à l'interface que vous avez précédemment déssiné. C'est à la fois un gain de temps et de productivité, mais aussi une bonne façon de séparer le fond de la forme de votre interface.&lt;/p&gt;
&lt;p&gt;
C'est l'utilitaire en ligne de commande nommé «&amp;nbsp;pyuic4&amp;nbsp;» qui vous permettra de manipuler le module «&amp;nbsp;uic », il sera détaillé un peu plus loin.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Il est aussi disponible en &lt;strong&gt;libre téléchargement&lt;/strong&gt; en annexe au format PDF et html.&lt;/p&gt;</description>
    
          <enclosure url="http://doc.qtfr.org/public/2007/pyqt4-designer.html"
      length="62999" type="text/html" />
          <enclosure url="http://doc.qtfr.org/public/2007/pyqt4-designer.pdf"
      length="122852" type="application/pdf" />
    
    
      </item>
    
</channel>
</rss>