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

PyQt Python Discussion :

Petit nouveau avec quelques questions


Sujet :

PyQt Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut Petit nouveau avec quelques questions
    Bonsoir,

    Cela fait maintenant une semaine que je me suis mis à python et pyqt (en utilisant qtdesigner) en remplacement de bash avec lequel j'utilisais des palliatif au manque de gui poussées...

    M'etant plongé dans pyqt et qtdesigner, je ressens un grand plaisir à tester plein de widgets :p mais je rencontre quelques soucis...

    Voila donc ma petite liste de question

    - comment fonctionne scrollToAnchor de textEdit ?
    Si j'ai bien compris, c'est censé scroller jusqu'à un texte non ?


    - quelle différence entre setHtml et setText de textEdit vu que les 2 prennent en charges les effets visuels html ?


    - Je ne comprends pas comment on fait pour récupérer la valeur du bouton d'un buttonbox : button (which)
    https://deptinfo-ensip.univ-poitiers.fr … Box.button
    À quoi correspond le which ?


    - J'ai lu qu'il était possible de créer un bouton-liste, est-ce possible via qt designer ?


    - Quelle est la différence entre les signaux clicked et activated de calendarWidget ?


    - Lorsque je veux utiliser le signal activated sur un combobox, j'utilise la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.comboBox.activated.connect(self.funct_combobox)
    Ça marche très bien et me renvoie l'index, mais je voudrais recevoir le texte et non l'index, mais mon soucis est que le signal est le même.
    Comment peut on lui indiquer quel retour nous voulons ?
    Peut on le faire avec ce genre de code ou faut il obligatoirement passer par quelque chose de plus compliqué comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QtCore.QObject.connect(self.comboBox, QtCore.SIGNAL("activated(QString)"), self.funct_combobox)

    - Est-il possible d'utiliser une variable dans une commande du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.VARIABLE.blockSignals(True)
    L'idée étant de faire une boucle qui executera cette commande pour plusieurs widget d'un coup.


    merci à vous et désolé pour ces questions qui sont surement basiques.

    Bonne nuit à vous

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut Hizoka,

    Le scrollToAnchor(nom) fonctionnera bien si tu as une ancre de ce nom là.
    Il ne centrera pas forcément le texte de l'ancre.

    La différence entre setHtml et setText est que setText essayera de reconnaître le type de texte avant d'afficher, donc, comme dit dans la doc "Use setHtml() or setPlainText() directly to avoid text edit's guessing".

    - Je ne comprends pas comment on fait pour récupérer la valeur du bouton d'un buttonbox : button (which)
    un buttonbox, je ne vois pas trop ce que c'est, il existe quelque chose de ce nom là pour les boîtes de dialogue, mais je ne les utilise pas.

    - J'ai lu qu'il était possible de créer un bouton-liste, est-ce possible via qt designer ?
    Ça s'appelle un popup menu, et ça s'applique au QToolButton pas au QPushButton[1].
    Tu places ton bouton et dans ses propriétés, tout en bas, tu choisis popupMode > MenuButtonPopup, le menu, tu le créera séparement.

    - Quelle est la différence entre les signaux clicked et activated
    Pour n'importe quel widget ayant ce signal, activated n'est émit que par une action de l'utilisateur et pas si un changement est fait par le programme, donc, ce signal peut être identique au signal clicked pour les widgets qui ont ces deux signaux.


    Pour les signaux qui peuvent contenir divers types de données, le type peut être précisé au signal lors de la connection de cette manière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    self.comboBox.activated[int].connect(self.funct_combobox)
    self.comboBox.activated['QString'].connect(self.funct_combobox)
    Remarque: la QString est un cas particulier, il faut la mettre entre guillemets afin de la faire accepter par les api qui ne supportent plus les QString.


    - Est-il possible d'utiliser une variable dans une commande du genre :
    self.VARIABLE.blockSignals(True)
    self.VARIABLE sûrement pas, parceque ça ne veut pas dire grand chose, mais si tu places tes widgets dans une liste tu pourras les traiter en boucle, je le fais couramment.

    Voilà, bienvenue au club.



    [1] Hors Designer on peut appliquer un menu aux QPushButton

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Le scrollToAnchor(nom) fonctionnera bien si tu as une ancre de ce nom là.
    Il ne centrera pas forcément le texte de l'ancre.
    Ok, en effet j'avais pas bien compris

    La différence entre setHtml et setText est que setText essayera de reconnaître le type de texte avant d'afficher, donc, comme dit dans la doc "Use setHtml() or setPlainText() directly to avoid text edit's guessing".
    Ok, doc les 2 marchent tres bien mais pour un gain de temps autant lui inidquer directement le type.

    La buttonbox est une box verticale ou horizontale proposant une liste de boutons types icone + texte du genre : yes, No, Open, Close, Cancel...

    Citation Envoyé par La doc
    StandardButton QDialogButtonBox::standardButton ( QAbstractButton * button ) const

    Renvoie la valeur de bouton standard correspondant au bouton button donné ou NoButton si le bouton button n'est pas un bouton standard.
    En fait je ne vois pas trop à quoi correspond le ( QAbstractButton * button ) qu'il faut indiquer...


    Ça s'appelle un popup menu, et ça s'applique au QToolButton pas au QPushButton[1].
    Est-il possible de creer une liste dans qtdesigner ou faut il la taper en python ?


    Pour n'importe quel widget ayant ce signal, activated n'est émit que par une action de l'utilisateur et pas si un changement est fait par le programme, donc, ce signal peut être identique au signal clicked pour les widgets qui ont ces deux signaux.
    Petite précision qui a son importance


    Pour les signaux qui peuvent contenir divers types de données, le type peut être précisé au signal lors de la connection de cette manière.
    ...
    Remarque: la QString est un cas particulier, il faut la mettre entre guillemets afin de la faire accepter par les api qui ne supportent plus les QString.
    Mince j'avais testé les [] et () mais pas avec des ""... presque !


    self.VARIABLE sûrement pas, parceque ça ne veut pas dire grand chose, mais si tu places tes widgets dans une liste tu pourras les traiter en boucle, je le fais couramment.
    Ok et du coup tu t'y prends comment pour boucler sur tes widgets ?


    De nouvelles questions :p
    - J'ai vu qu'il y avait une concurrence entre pyqt et pyslide mais les topics remontent à 2ans, qu'en est-il aujourd'hui succinctement ?

    - QtDesigner propose également des widgets kde, ils fonctionnent de la même façon que les autres ?
    Les utiliser ajoutera-t-il des dépendances pour les utilisateurs ?

    - Je voulais ajouter un de tes widget (http://bazaar.launchpad.net/~vincent...-1.0/VWidgets/ ), la toolBox dépliable mais je n'ai pas reussis, il semble me manquer le fichier libpythonplugin.so.
    J'ai fait une recherche avec la commande apt-file mais je ne l'ai pas trouvé...
    est-ce encore obligatoire ?
    J'ai copié les fichiers dans /usr/lib/qt4/plugins/designer/python et /usr/lib/qt4/plugins/designer/python/mesWidgets

    - Est-il possible de rassembler 2 connexions en 1 (je ne pense pas mais je demande :p) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.ex_comboBox.activated["QString"].connect(self.liste_1)
    self.ex_comboBox.activated[int].connect(self.liste_1)
    - Quelle est la difference entre listWidget et listView ?
    Le 1er peut etre rempli depuis qtdesigner mais cela ne doit pas être la seul difference...


    Voilà, bienvenue au club.
    Merci beaucoup, ce n'est pas facile de passer de bash que je maîtrise pas mal à un langage plus complexe... mais quand je vois les possibilités de gui, c'est juste ultra plaisant :p

    et merci du temps que tu consacres à répondre.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    OK, le buttonbox est un QDialogButtonBox.
    Il y a un exemple dans /usr/share/doc/python-qt4-doc/examples/dialogs/extension.py si tu as installé le paquet python-qt4-doc

    Pour les popupmenu on ne sait pas les créer dans le designer.

    Ok et du coup tu t'y prends comment pour boucler sur tes widgets ?
    ben, comme j'ai dis, tu les met dans une liste.

    Les widgets KDE je ne sais pas ce qu'ils sont devenus, depuis Ubuntu 12.04 ils ont disparu du designer, peut-être est-ce maintenant un paquet séparé et donc une dépendance séparée aussi.

    Pour les widgets personnalisés j'ai mis un exemples d'installation ici
    ce sont les chemins pour Qt5 il faudra que tu adaptes au chemins de Qt4.

    Les fichiers plugin ne servent que pour le designer, les widgets eux-même tu peux les intégrer directement dans ton code si c'est plus simple.

    - J'ai vu qu'il y avait une concurrence entre pyqt et pyslide mais les topics remontent à 2ans, qu'en est-il aujourd'hui succinctement ?
    PySide est relativement récent et, je pense, à jour pour Qt4 et Python 3, mais bon, c'est aussi un projet brésilien donc ça n'avance qu'entre carnaval et coupe de foot ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    OK, le buttonbox est un QDialogButtonBox.
    Il y a un exemple dans /usr/share/doc/python-qt4-doc/examples/dialogs/extension.py si tu as installé le paquet python-qt4-doc
    C'est ce que j'ai essayé à la base mais via le designer il est impossible de nommer les boutons et donc de faire appelle à eux directement.
    Mais j'ai reussis en passant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def connectActions(self):
         self.buttonBox.clicked.connect(self.buttonBoxDef)
     
    def buttonBoxDef(self, button):
        print(self.buttonBox.standardButton(button))

    ben, comme j'ai dis, tu les met dans une liste.
    Désolé mais j'ai un peu de mal à comprendre exactement comment on fait...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for widget in ["ex_dateEdit", "ex_dateTimeEdit", "ex_calendarWidget"]:
        self.widget.blockSignals(True)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for action in ["self.ex_dateEdit.blockSignals(True)", "self.ex_dateTimeEdit.blockSignals(True)", "self.ex_calendarWidget.blockSignals(True)"]:
        action
    Ne marchent évidement pas...


    Les widgets KDE je ne sais pas ce qu'ils sont devenus, depuis Ubuntu 12.04 ils ont disparu du designer, peut-être est-ce maintenant un paquet séparé et donc une dépendance séparée aussi.
    Apres une recherche avec apt-file, il s'avere que c'est le paquet kdelibs5-plugins sur ubuntu qui semble obligatoire pour Kubuntu.


    Pour les widgets personnalisés j'ai mis un exemples d'installation ici
    Ok, merci il apparaît bien dans qtdesigner.
    Ca marche nickel


    ...c'est aussi un projet brésilien donc ça n'avance qu'entre carnaval et coupe de foot ...
    Sans compter les manifs :p


    Et je fini avec une petite dernière question :
    Quelle est la différence entre listWidget et listView ?
    Le 1er peut être rempli depuis qtdesigner mais cela ne doit pas être la seul différence...

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 476
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par hizoka Voir le message
    Quelle est la différence entre listWidget et listView ?
    D'une manière générale, entre les widgets "Q...Widget" et "Q...View", la différence est que l'on donne directement des données au 1er, mais qu'on "branche" le 2e aux données par l'intermédiaire d'un "modèle".

    Pour prendre un exemple concret, j'utilise souvent un QTableView (grille comme Excel) connecté à une base de données relationnelle par un QSqlRelationalTableModel, qui permet de visualiser, trier, filtrer et modifier les données d'une table avec répercution directe sur la base de données. C'est d'autant plus pratique que n'importe quelle requête de type select qui peut créer une table provisoire peut être visualisée de la même façon. On peut donc poser des questions complexes en sql, y compris avec des expressions régulières ou des recherches de mots similaires, et voir tout de suite visuellement le résultat!

    Ce serait très compliqué d'avoir ça avec un QTableWidget, car il faudrait programmer soi-même tout l'interface.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Ok, donc c'est un widget qui est encore un peu compliqué pour moi meme si j'ai compris le principe (en meme temps j'ai rien à brancher dessus pour le moment :p)


    La par contre je galere sur un autre truc (en plus du reste... mais j'abandonne pas !) : Comment ajouter une icone à un qlistwidget apres coup ?
    pour ajouter le texte pas de soucis mais pas de methode simple pour l'icone contrairement à la combobox.
    J'ai fait des recherches et tester les soluces proposées, mais je n'ai pas reussis...

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 476
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par hizoka Voir le message
    Comment ajouter une icone à un qlistwidget apres coup ?
    ==> .setWindowIcon(const QIcon & icon )?

    (je n'ai pas essayé)

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Je me suis mal exprimé

    Comment ajouter un item contenant une icone et un texte sans passer par qtdesigner.

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 476
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par hizoka Voir le message
    Comment ajouter un item contenant une icone et un texte sans passer par qtdesigner.
    C'est facile. Comme souvent, pour un widget qui porte des éléments, ces éléments ont un type particulier. Ici, chaque ligne d'un QListWidget a un type QListWidgetItem.

    Ajouter une icone à une ligne se trouve donc dans la doc, en consultant cette classe QListWidgetItem dans la liste des classes (http://pyqt.sourceforge.net/Docs/PyQt4/classes.html). Voilà comment on peut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            item = self.lw.item(2) # c'est la 3e ligne
            item.setIcon(QtGui.QIcon(u"icone.png"))
    Comme il faut d'abord trouver la ligne, tout dépend du contexte. Ici, on a voulu trouver la 3e ligne (index=2). On peut vouloir trouver la ligne courante (item = self.lw.currentItem()), ou commencer par créer la ligne avant de l'ajouter au QListWidget (item = QtGui.QListWidgetItem(...)), etc... En ayant l'item, on peut d'ailleurs modifier pas mal de choses: le texte, la police de caractères, la couleur du texte, la couleur du fond, etc...

    A noter que cette bibliothèque graphique est tellement complète que ça me parait quasi impossible de programmer sans avoir la doc sous la main en permanence. On peut la trouver en ligne chez riverbank (http://www.riverbankcomputing.co.uk/software/pyqt/intro). Pour ma part, je préfère utiliser l'Assistant qui est très bien fait, mais qui nécessite d'installer Qt4 en plus: on récupère ainsi la doc sous forme de fichiers xxxxx.qch, et il suffit d'indiquer leur chemin dans l'Assistant.

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    Pour boucler sur tes widgets, c'est comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for widget in [self.ex_dateEdit, self.ex_dateTimeEdit, self.ex_calendarWidget]:
        widget.blockSignals(True)
    Sinon, si tu as gardé une référence du layout où ils sont placés, tu peux aussi énumérer son contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for i in range(self.layout.count()):
        try:
            self.layout.itemAt(i).widget().blockSignals(True)
        except:
            # Pas un widget
            pass

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    @ tyrtamos :
    => J'avais bien vu qu'il y avait l'item mais je n'avais pas réussis à récupérer l'item, il me manquait le fameux :
    item = self.lw.item(2)
    ça c'est vraiment cool
    Oui j'ai vu toute la puissance des options proposées.
    EDIT : C'est trop genial !! on peut faire tellement de choses avec ça


    @ VinsS :
    J'avais enfin réussis a 3h du mat, j'ai pas eu le temps de le dire :p
    Par contre le truc avec le layout est encore mieux !


    Merci beaucoup à vous deux.


    Je sens que j'abuse, mais je vais y aller à fond, car avoir 2 pro du pyqt4 à mon écoute, ça arrive pas tous les jours :p

    J'ai compris une grande partie des widgets, mais là je reviens sur la construction d'un model pour les treeview.
    Je ne comprends pas trop comment on fait pour créer simplement un model définit de la façon suivante :
    colonne 1 | colonne 2 | Colonne 3
    après on envoie le model au treeview
    et il faut encore remplir les lignes.

    Mais j'ai beau avoir réfléchit et cherché un bon moment, j'ai trouvé plusieurs fichiers sur le net, mais aucun n'était expliqué...

    Serait-il possible que vous me montriez un code le plus simple possible sur l'utilisation d'un treeview qui serait créé dans qtdesigner.

    Désolé, je sens bien que j'ai du mal et que toutes mes questions vous prennent du temps... mais j'ai vraiment envie de continuer à apprendre pyqt qui donne une vrai sensation de liberté.

  13. #13
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 476
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Pour te faire patienter en attendant des exemples, tu peux lire cet excellent article sur l'architecture MVC et la simplification qu'en fait Qt:

    http://web.univ-pau.fr/~puiseux/ense...4%28VMC%29.pdf

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    Salut Hizoka,

    Toi ici ? Comment vas-tu ? Je vois que tu es en train de passer Screencastor MKVExtractor en PyQt. C'est cool.

    Je suis d'accord avec toi pour dire que PyQt c'est cool.

    Vu que tu refais tout pourquoi pas en PyQT5 directement ? Quelles version de Qt Designer utilises tu ? la 4 ou la 5 ? La 5 est plus compète.

    Pour répondre à ta question sur QDialogButtonBox du début (tu démarres fort, très fort pour quelques questions ), malgrè ma maigre experience avec PyQT et Qt Designer, je vais essayer de te répondre.

    Tout depends du type de fenetre que tu as crée au début (avec, à droite ou sans boutons). Elle est crée automatiquement et aussi et surtout les signaux correspondants ce qui fait que tu n'as rien à faire. Au contraire, si elle n'en dispose pas cad sans boutons, tu devras créer ceux-ci.

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Salut Cenwen, oui c'est l'idée mais avant ça, il va me falloir cogiter

    Y a du boulot...

    J'utilise qt4 et designer qt4.

    Il faut installer quoi pour utiliser qt5 et son designer ?
    quitte à commencer autant y aller à fond :p


    EDIT : Par contre j'ai beau relire ton message sur la buttonbox et j'y comprends rien XD
    j'ai testé des trucs et que ce soit créé avec la fenetre ou simplement ajouté en tant que widget, il n'y a pas moyen de leur donner un nom pour surveiller leur utilisation, il faut passer par standardbutton.

    tyrtamos => Merci, des que je peux je lis le pdf.
    EDIT : Il est vraiment bien ce pdf, je pige bien ce qu'y est expliqué pour le moment

    EDIT2 : J'ai lu toute la partie parlant des models de base
    je rencontre un soucis, si je veux créer un tree sur 2 colonnes par ex, voila ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            self.model = QtGui.QStandardItemModel()
            item1 = QtGui.QStandardItem("Vidéos")
            item1.appendRow(QtGui.QStandardItem("Angle superieur"))
            item1.appendRow(QtGui.QStandardItem("Angle inferieur"))
            item2 = QtGui.QStandardItem("Audio")
            item2.appendRow(QtGui.QStandardItem("AC3 FR"))
            item2.appendRow(QtGui.QStandardItem("DTS ENG"))
     
            self.model.appendRow(item1)
            self.model.appendRow(item2)
     
            self.model.setItem(0, 1, QtGui.QStandardItem(u"Case 0.1 !"))
            self.model.setItem(1, 1, QtGui.QStandardItem(u"Case 1.1"))
    Cela fonctionne, mais n'y a-t-il pas un autre moyen d'ajouter les colonnes ?
    je n'ai pas reussis a utiliser appendColumn
    j'aimerai ajouter une ligne complete en fait, lui dire ajoute les lignes :
    - a0 | a1 | a2
    - b0 | b1 | b2

    J'ai evidement le meme soucis avec le table. L'ajout de ligne se fait ok mais comment ajouter une ligne d'un bloc ?

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    Il faut installer quoi pour utiliser qt5 et son designer ?
    quitte à commencer autant y aller à fond :p
    Tout est expliqué sur cette page mais par contre il faudra que tu le compiles pour qu'il puisse coexister avec PyQT4 , c'est la seule condition. A moins qu'il soit dans la 13.10 ? Quel est ta distribution actuelle ? Je suis sur une dérivée d'Arch, Manjaro et je dois dire que ces systèmes compilés , outre une tonne d'avantage, sont un régal pour ce qui est développement.

    Python 2.7..x ou Python 3.x ?

    http://www.riverbankcomputing.com/so...pyqt/download5

    Il te fournira tout ce qu'il faut (PyQT5, Qt Designer, Qt Assistant,......)
    D'après Vincent, tu seras probablement amené à installer qttools.

    EDIT : Par contre j'ai beau relire ton message sur la buttonbox et j'y comprends rien XD
    j'ai testé des trucs et que ce soit créé avec la fenetre ou simplement ajouté en tant que widget, il n'y a pas moyen de leur donner un nom pour surveiller leur utilisation, il faut passer par standardbutton.
    Je n'ai jamais été fort en explications et cela se voit. D'après le livre Rapid GUi Programming with Python et QT, le seul à ma connaissance, de Mark Summerfield, il conseille lors de la création d'une fenêtre d'utiliser ce modèle prédéfini sauf si vous avez des besoins spécifiques (à l'aide de QPushButtons) ou des problèmes de compatibilité dans les différentes plateformes. Ces boites de dialogues ont leur propres signaux qui correspondent aux actions de l'utilisateur. Les autres non car tu dois les créer à la main puisque tu personnalises les boutons. Fais l'essai dans Qt Designer avec 2 fenêtres une avec une QDialogButtonBox et l'autre sans. Va ensuite dans la partie de droite au fond à gauche (appelée Éditeur de Signaux et Slots) . Bien entendu, à cet endroit tu peux modifier ceux-ci en double cliquant dessus. Une liste des signaux, slots possibles te seront proposé.

    En relisant et pour répondre à ta question : Si tu veux créer tes propres boutons, il faut que se soit des QDialog/QWidget sans boutons (i.e QDialogButtonBox) dans QtDEsigner. Ensuite tu fais ce que tu veux comme tu le veux mais il faudra créer chaque Signal et chaque Slot pour tes boutons.

    @Tyrtamos

    tyrtamos => Merci, des que je peux je lis le pdf.
    EDIT : Il est vraiment bien ce pdf, je pige bien ce qu'y est expliqué pour le moment
    Entierement d'accord. Merci. Ces widgets sont toujours épineux et quelques soit le toolkit graphique. Et en plus, on a droit à une doc en français.

    @Hizo again

    Quand tu es lancés tu es une vraie machine. Ce qui n'est pas mon cas.

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    je suis peut etre allé trop vite :p

    J'ai fini toute l'interace cette nuit...
    Le seul probleme est l'importation du contenu du fichier mkv dans le tree ou table...

    Je suis en qt4.8 et python3.3.

    EDIT : apres installation du fichier run : http://qt-project.org/downloads
    j'ai tout en qt5.1.1 et en fr.
    Je trouve l'interieur de la fenetre de qtcreator plus moche qu'en qt4 mais bon....
    Beaucoup de forme carrées, pas d'arrondis...

    Y a-t-il des difference pour les bases de pyqt5 ?

    EDIT : j'arrive pas à faire fonctionner pyqt5...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class MKVExtractorGui(QtGui.QMainWindow, MKVExtractorGuiUI.Ui_mkv_extractor_gui):
    AttributeError: 'module' object has no attribute 'QMainWindow'
    j'ai importé QtQml, QtQuick mais je n'arrive pas à lancer mon logiciel.

    Le truc chiant c'est qu'il n'y a pas de tuto sur pyqt5... au contraire de pyqt4

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    je suis peut etre allé trop vite :p

    J'ai fini toute l'interace cette nuit...
    Le seul probleme est l'importation du contenu du fichier mkv dans le tree ou table...
    Une vraie machine de guerre, tu me rappelles quelqu'un, un américain je crois.

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Du coup je suis à la recherche des infos suivantes :
    - Comment remplir un tree ou tableau le plus facilement possible en le remplissant ligne par ligne

    - Comment lancer le programme en utilisant qt5 (il faut utilise QtQml ?! comment on ouvre directement le fichier ui ?)

    - Comment peut on intégrer une icone dans les editline comme dans plein de logiciel kde/qt qui permettent d'effacer le contenu.
    C'est etrange que ce ne soit pas proposé par defaut, ca fait longtemps que gtk l'a (2 icones possibles)

    - Comment implente-on une icone dans la statubar, j'ai vu qu'il était possible d'y ajouter un widget mais j'ai pas tout piger...)
    D'ailleurs est-il possible de mettre de la couleur dans la statusbar ? Je n'ai pas reussis...

    Si tu as du temps et une messagerie en irect on pourrait essayé d'avancer ensemble pour mkv extractor gui, qu'en penses tu ?!

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 301
    Points : 6 781
    Points
    6 781
    Par défaut
    - Comment remplir un tree ou tableau le plus facilement possible en le remplissant ligne par ligne
    Tu instancies un QTreeWidgetItem(myTreeWidget) avec ton QTreeWidget pour parent, tu défini ses données à partir de la colonne 0, si cette donnée a un ou des enfants (ce qui est en général le cas dans les arborescences) tu redéfinis à chaque fois un QTreeWidgetItem(parent) avec celui qui est son parent
    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
     
            inf = get_image_info()
            twi = QtGui.QTreeWidgetItem(self.editor)
            twi.setText(0, _(" Image"))
            child = QtGui.QTreeWidgetItem(twi)
            child.setText(0, _("Size"))
            child.setText(1, inf[0])
            child = QtGui.QTreeWidgetItem(twi)
            child.setText(0, _("Resolution"))
            child.setText(1, inf[1])
     
    -----------------------------------------
    + Image
        | Size          3045 x 2589
        | Resolution    72
    - Comment lancer le programme en utilisant qt5 (il faut utilise QtQml ?! comment on ouvre directement le fichier ui ?)
    Exactement comme avec PyQt4, sauf que si tu veux convertir le .ui en .py tu utiliseras pyuic5.

    - Comment peut on intégrer une icone dans les editline comme dans plein de logiciel kde/qt qui permettent d'effacer le contenu.
    C'est etrange que ce ne soit pas proposé par defaut, ca fait longtemps que gtk l'a (2 icones possibles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from VWidgets.vlineedit import VLineEdit


    - Comment implente-on une icone dans la statubar, j'ai vu qu'il était possible d'y ajouter un widget mais j'ai pas tout piger...)
    Avec QStatusBar.addPermanentWidget(widget) et dans le widget tu met ce que tu veux, layout et tout le toutim.
    Un exemple avec un peu de tout:
    http://bazaar.launchpad.net/~vincent...i_statusBar.py

    D'ailleurs est-il possible de mettre de la couleur dans la statusbar ? Je n'ai pas reussis...
    Avec les styleSheet, mais, reporte ça à plus tard ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Nouveau avec une question sur Xcode
    Par shub22 dans le forum XCode
    Réponses: 0
    Dernier message: 24/11/2014, 12h15
  2. [API HTML5] Premier petit jeu et quelques questions.
    Par GalliezB dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/07/2013, 19h55
  3. [KPL] Quelques questions pour l'aborder avec mon fils
    Par yiannis dans le forum Autres langages
    Réponses: 16
    Dernier message: 22/12/2005, 09h25
  4. Tout nouveau, j'arrive avec une question ^^
    Par petitedouceur dans le forum C++
    Réponses: 25
    Dernier message: 06/11/2005, 00h48

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