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

Tkinter Python Discussion :

Conseils pour découpage GUI [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Février 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2020
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Conseils pour découpage GUI
    Bonjour,

    J'ai un projet d'une interface graphique regroupant plusieurs modules. Chaque module devra certainement être réécrit dans une logique de programmation par événement.

    Il faut avant tout structurer la fenêtre. Celle-ci comportera :
    - une image de fond,
    - un affichage vidéo,
    - des sorties de données texte à afficher,
    - des valeurs d'entrées,
    - trois boutons d'événements (exécution module1, module2, quitter).

    Les éléments vont être actualisés (update) très régulièrement. Après avoir lu les différents tutos, il me semble que deux possibilités ordonnancement se dégagent :
    - créer des frames par zone/fonction, y insérer des widgets,
    - créer un grand canevas et gérer mes widgets avec des create_window.

    Ce sont deux possibilités que je perçois. Débutant cependant, il y a probablement mieux à faire vu mes objectifs.
    1- Que me conseillez-vous ?
    2- Dans la mesure où il y a une image de fond, la solution "canevas" me semble plus appropriée (graphiquement), mais en terme de programmation (appels de fonctions et les multiples update), est-ce que frame simplifie les choses ?

    Merci

    Nom : Capture du 2020-04-19 16-55-42.png
Affichages : 616
Taille : 19,7 Ko

  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,

    Le canevas n'ayant pas été conçu pour servir de "toile de fond" pour les divers widgets de ton interface, je te recommande la solution Frame(s)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Février 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2020
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Le canevas n'ayant pas été conçu pour servir de "toile de fond" pour les divers widgets de ton interface, je te recommande la solution Frame(s)
    Merci pour la réponse. Cependant, à ce que j'en ai compris, il n'est pas possible d'avoir une image en toile de fond d'un Frame (choix d'une couleur unie seulement).
    Il me semble donc devoir, avec la solution Frame, faire du découpage autour des blocs. La solution Canvas+create_window+frame dans la fenêtre parait plus simple.

    Ceci étant, en terme d'efficacité du code (update), y a t il une différence entre les deux solutions (simplicité de programmation, rapidité d'exécution...) ? Vers quoi vous orienteriez-vous ?

    Voici le principe de l'image de fond :
    Nom : tableau-bord-abstrait-technologie-futuriste-interface-hud_48644-170.jpg
Affichages : 797
Taille : 115,5 Ko

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 302
    Points : 36 801
    Points
    36 801
    Par défaut
    Salut,

    Citation Envoyé par Damien_38 Voir le message
    Ce sont deux possibilités que je perçois. Débutant cependant, il y a probablement mieux à faire vu mes objectifs.
    1- Que me conseillez-vous ?
    2- Dans la mesure où il y a une image de fond, la solution "canevas" me semble plus appropriée (graphiquement), mais en terme de programmation (appels de fonctions et les multiples update), est-ce que frame simplifie les choses ?
    Ce qui sera à mettre à jour sont les widgets: pas les Frame ou le Canvas qui les contiendront.

    Par contre, placer vos widgets dans des Frames et combiner les Frames vous donne déjà une organisation et des .pack/.grid côté disposition qui ne seront plus avec un Canvas.

    Peut être serait-il sage de faire une première mouture avec des Frames (pour vous simplifier la vie) puis lorsque tout fonctionne, virer les Frames pour intégrer les widgets sur un Canvas.

    - W

  5. #5
    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
    Citation Envoyé par Damien_38 Voir le message
    Merci pour la réponse. Cependant, à ce que j'en ai compris, il n'est pas possible d'avoir une image en toile de fond d'un Frame (choix d'une couleur unie seulement).
    Il me semble donc devoir, avec la solution Frame, faire du découpage autour des blocs. La solution Canvas+create_window+frame dans la fenêtre parait plus simple.
    Mais ce que tu montres ce n'est pas une image de fond, c'est le découpage de différents widgets composites, ça ne fonctionne jamais comme cela, avec aucun framework graphique.

    Ceci étant, en termes d'efficacité du code (update), y a t il une différence entre les deux solutions (simplicité de programmation, rapidité d'exécution...) ? Vers quoi vous orienteriez-vous ?
    Ben, cette idée de caser des widgets dans un décor dessiné dans un espace graphique me parait irréaliste.

    Sans faire de pub pour un framework ou l'autre, Tkinter ne me semble pas approprié pour créer ce type d'interface.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 302
    Points : 36 801
    Points
    36 801
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Ben, cette idée de caser des widgets dans un décor dessiné dans un espace graphique me parait irréaliste.
    C'est juste une des fonctionnalités du Canvas tkinter.

    - W

  7. #7
    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
    Ben oui, mais le PO présente son interface comme un décor dans lequel il compte aligner ses widgets.

    Et quid du redimensionnement ? Ça me parait un fameux casse-tête.

    Il n'y a pas de stylesheet pour ce genre de création dans Tkinter ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Février 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2020
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    Par contre, placer vos widgets dans des Frames et combiner les Frames vous donne déjà une organisation et des .pack/.grid côté disposition qui ne seront plus [possible?] avec un Canvas.
    Peut être serait-il sage de faire une première mouture avec des Frames (pour vous simplifier la vie) puis lorsque tout fonctionne, virer les Frames pour intégrer les widgets sur un Canvas
    Oui, en effet, faire une GUI "fonctionnelle"... déjà faire tourner Opencv pour avoir la matrice d'homographie, puis le reconnaissance d'image et afficher l'ensemble serait très bien.

    Mais ce que tu montres ce n'est pas une image de fond, c'est le découpage de différents widgets composites, ça ne fonctionne jamais comme cela, avec aucun framework graphique.
    Ce que je montre dans le post initial, oui. Je dis oui, mais débutant, je ne sais pas trop comment "ça fonctionne" : comment structurer mais GUI (je mélange le graphisme et le fonctionnel dans le synoptique).

    Sans faire de pub pour un framework ou l'autre, Tkinter ne me semble pas approprié pour créer ce type d'interface.
    C'est juste une des fonctionnalités du Canvas tkinter.
    Avant de choisir tkinter, j'ai parcouru différents forum. Il me semble que d'autres "frameworks" sont possibles (wxPython, PyQT, PyGTK... si c'est ce à quoi vous faites référence).
    A la réflexion, tkinter m'a paru une bonne base pour comprendre et programmer. J'envisage, plus tard, d'utiliser ttk pour le côté plus "attractif graphiquement" (qui semble suffisant au début).
    Les autres frameworks m'ont semblé plus spécialisés, en tout cas adaptés du langage C/XML (donc pour un programmeur maîtrisant ces framworks venant faire du Python (même si tkinter vient du "c" si j'ai compris)).

    Pour info, je n'ai pas prévu de redimensionner la fenêtre. Chaque chose en son temps.
    En tout cas merci pour vos conseils, et à votre écoute si vous avez d'autres "orientations" ou guides/tuyaux..

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 302
    Points : 36 801
    Points
    36 801
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Et quid du redimensionnement ? Ça me parait un fameux casse-tête.
    Si tant est que ce soit nécessaire, c'est une même opération à appliquer sur tous les widgets affichés.
    Savoir le faire une fois et dire à l'ordinateur de répéter (il adore!).
    "savoir" étant relatif, car en cherchant un peu sur Internet, on va trouver des codes clefs sur porte.

    Citation Envoyé par VinsS Voir le message
    Il n'y a pas de stylesheet pour ce genre de création dans Tkinter ?
    TCL/Tk utilise des équivalents de stylesheets. C'est dans un format qui existait avant même que nous inventions XML!!! Un peu vintage... ok mais çà fait le job.

    - W

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

Discussions similaires

  1. Conseil : bibliothèque pour GUI
    Par Lumbermatt dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 01/08/2007, 04h48
  2. [FengGUI][Swing] Conseils pour le GUI d'une applet
    Par Malkavien dans le forum Graphisme
    Réponses: 1
    Dernier message: 31/05/2007, 17h37
  3. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07
  4. Conseils pour poser votre question...
    Par Community Management dans le forum XMLRAD
    Réponses: 0
    Dernier message: 30/01/2003, 16h58
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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