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

Outils Discussion :

Compréhension de l'interface [Qt Designer]


Sujet :

Outils

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Points : 32
    Points
    32
    Par défaut Compréhension de l'interface
    Bonjour,

    Je suis confronté à un projet à l'université ou je dois apprendre par moi même la bibliothèque PyQt4 et réaliser une GUI, il m'est autorisé d'utiliser PyQt Designer. J'ai quelques questions néanmoins concernant cet utilitaire.

    Je vous joins un exemple de GUI présenté par mon professeur que je dois reproduire (pas au pixel près, je peux être créatif):

    Nom : tab1.png
Affichages : 112
Taille : 113,1 KoNom : tab2.png
Affichages : 128
Taille : 157,5 Ko

    J'ai bien compris qu'il s'agissait d'un TabWidget (une sorte de fenêtre à x onglets). Dans l'exemple, chaque fois que je changes d'onglets, la partie supérieur reste identique sauf pour ce qui est de la partie inférieur qui change. Je pense ne pas avoir très bien saisi le concept de cet utilitaire alors voici ma question:

    1) Pour réaliser ce genre de GUI, je dois tout faire sur un un même fichier ou chaque élément sur un fichier séparé? Parce que j'ai essayé de reproduire l'exemple pour m'entraîner mais je ne vois pas comment mon professeur a fait pour déplacer les onglets en dessous des paramètres d'input.

    Merci!

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec QtDesigner, une fenêtre graphique correspond à un fichier. Ce fichier sera en fait un fichier XML qui devra être transformé en script Python grâce à l'utilitaire "pyuic4":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyuic4 mafenetre.ui -o mafenetre.py
    Après, on ne cherche pas à modifier à la main mafenetre.py, mais on l'importe dans le programme.

    Pour concevoir ta fenêtre, il te faudra tâtonner un peu: on a tous commencé comme ça (et on continue encore). Je peux te confirmer qu'on peut dessiner n'importe quelle fenêtre avec le Designer, y compris la tienne.

    Comme ta fenêtre n'a pas de menu, c'est un QWidget.

    Pour la ligne supérieure des entrées, je pense que les widgets d'entrées devraient être "portés" par un QFrame dont il faudra forcer la hauteur en pixels.

    Pour que les différents éléments graphiques à l'intérieur d"une fenêtre puissent suivre un redimensionnement de la fenêtre, on utilise un QGridLayout. Et c'est dans cette grille de positionnement qu'on va placer en haut le QFrame (dont on forcera la hauteur maxi et mini à 100 pixels par exemple), et le QTabWidget en bas.

    Il faudra donner un nom à tous les widgets que tu placeras, puisque tu devras les utiliser dans ton code après selon la logique de ton programme.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Merci tyrtamos!

    Une dernière question avant que je ne mettes mon topic en résolu:

    QtDesigner offre-t-il la possibilité de lier un événement à une fonction? (par exemple, un print lorsque j'appuie sur un bouton).

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Oui, pour chaque type de widget il existe des signaux que tu pourras relier à tes fonctions.

    Regarde dans cette doc pour cela:
    http://pyqt.sourceforge.net/Docs/PyQt4/classes.html

    Dans certain cas les signaux sont définis dans la classe abstraite parente.

    Exemple pour le QPushButton les signaux sont déclarés dans QAbstractButton
    http://pyqt.sourceforge.net/Docs/PyQ...n.html#pressed

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compréhension pour <<interface>>
    Par tnarol dans le forum UML
    Réponses: 7
    Dernier message: 07/02/2007, 20h07
  2. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  3. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  4. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27
  5. [VB6] [Interface] Icones de boutons de barre d'outils
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 13/09/2002, 15h50

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