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 :

Impossible d'organiser interface [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Impossible d'organiser interface
    Bonjour,
    Je voudrais organiser mon interface pour la rendre plus belle. Actuellement, elle est en liste de manière désorganisé ce qui est pas très esthétique :
    Nom : interface.PNG
Affichages : 267
Taille : 2,1 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    from tkinter import *
     
    fenetre = Tk()
     
    assault = IntVar()
    aztec = IntVar()
    cache = IntVar()
    canals = IntVar()
    case1 = Checkbutton(fenetre, text="Assault", variable=assault)
    case2 = Checkbutton(fenetre, text="Aztec", variable=aztec)
    case3 = Checkbutton(fenetre, text="Cache", variable=cache)
    case4 = Checkbutton(fenetre, text="Canals", variable=canals)
    bouton = Button(fenetre, text="Appliquer", command=fenetre.quit)
    case1.pack()
    case2.pack()
    case3.pack()
    case4.pack()
    bouton.pack()
     
    fenetre.mainloop()

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 6
    Points : 7
    Points
    7
    Par défaut J'ai finit par trouvé !
    Pour tous ceux qui voudrait savoir comment, c'est en utilisant .grid() qui permet de ranger les widgets dans un système de grille et en rentrant le paramètre row=chiffre qui change la ligne et sticky=point cardinal qui se colle au point cardinal que tu rentre. Comme si-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    from tkinter import *
     
    fenetre = Tk()
     
    label.pack()
    assault = IntVar()
    aztec = IntVar()
    cache = IntVar()
    canals = IntVar()
    case1 = Checkbutton(fenetre, text="Assault", variable=assault).grid(row=1, sticky=W)
    case2 = Checkbutton(fenetre, text="Aztec", variable=aztec).grid(row=2, sticky=W)
    case3 = Checkbutton(fenetre, text="Cache", variable=cache).grid(row=3, sticky=W)
    case4 = Checkbutton(fenetre, text="Canals", variable=canals).grid(row=4, sticky=W)
    bouton = Button(fenetre, text="Appliquer", command=fenetre.quit).grid(row=5, sticky=W)
     
    fenetre.mainloop()
     
    a = assault.get()

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Seul problème
    Les "case.pack()" ne marche plus et retourne une erreur. Sa marche sans mais j'ai peur que sa puisse buggé sans alors si quelqu'un sait si ces graves ou pas.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 885
    Points : 7 233
    Points
    7 233
    Par défaut
    On peut travailler avec pack et grid, mais il faut bien comprendre le fonctionnement géométrique des widgets du framework tkinter, pour cela il faut lire des tutoriels et s'entraîner, pas de secret ! Le plus simple reste de tester des petits codes par ci, par là...

    Il y a plusieurs erreurs à ajouter,
    • label.pack() n'a rien à faire dans le code, il n'a pas été créé, il est donc impossible de le placer dans ta fenêtre
    • On écrit pas après fenetre.mainloop(), c'est la dernière instruction de ton code principal, cette ligne indiquant la fin de la boucle événementielle.


    Plusieurs remarques,
    • Éviter from tkinter import * afin d'empêcher de multiples conflits dans certains nom de variables, on préférera import tkinter as tk
    • Si tu avais 100 cases à écrire, tu les écrirais les une derrière les autres comme présentées dans ton code ? C'est le moment d'utiliser ce qu'on a appris dans les précédents cours avec une boucle.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 292
    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 292
    Points : 36 788
    Points
    36 788
    Par défaut
    Salut,

    Citation Envoyé par Popecinquante Voir le message
    Pour tous ceux qui voudrait savoir comment, c'est en utilisant .grid() qui permet de ranger les widgets dans un système de grille et en rentrant le paramètre row=chiffre qui change la ligne et sticky=point cardinal qui se colle au point cardinal que tu rentre.
    Avec .pack(anchor='w') vous auriez obtenu le même résultat.

    Citation Envoyé par Popecinquante Voir le message
    Les "case.pack()" ne marche plus et retourne une erreur. Sa marche sans mais j'ai peur que sa puisse buggé sans alors si quelqu'un sait si ces graves ou pas.
    bah.... tkinter n'est pas un outil dangereux comme peut l'être une tronçonneuse, sinon vous auriez pris la peine d'ouvrir documentation et tutos pour comprendre comment çà fonctionne avant même de l'utiliser.

    - W

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

Discussions similaires

  1. Insertion impossible dans plusieurs interface
    Par sghiri_alla_eddine dans le forum Forms
    Réponses: 1
    Dernier message: 19/06/2012, 17h58
  2. Impossible d'attribuer des iP fixes aux interfaces réseau
    Par Charlie62 dans le forum Windows Vista
    Réponses: 1
    Dernier message: 09/02/2008, 18h57
  3. RED HAT : impossible de déasctiver une interface
    Par ducho dans le forum Réseau
    Réponses: 2
    Dernier message: 25/10/2007, 10h36
  4. impossible de demarrer sous interface graphique
    Par a29595 dans le forum Mandriva / Mageia
    Réponses: 1
    Dernier message: 24/02/2007, 21h27
  5. Réponses: 4
    Dernier message: 19/09/2005, 17h56

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