Tkinter : problème positionnement labels et champs de saisie
Alpha_Delta091
Messages postés
4
Statut
Membre
-
Alpha_Delta091 Messages postés 4 Statut Membre -
Alpha_Delta091 Messages postés 4 Statut Membre -
Bonjour,
J'ai commencé récemment à coder une petite application en Python. Pour le moment j'en suis à l'écran d'accueil et j'utilise Tkinter pour l'interface graphique. J'ai créé une fenêtre TopLevel (qui se superpose sur une autre juste derrière) qui demande à l'utilisateur de rentrer un username et un mot de passe (identifiants uniques pour le moment). L'algorithme fonctionne très bien.
Le problème est, vous pourrez le constater sur le screen ci-joint, un souci d'alignement des deux labels par rapport aux champs de saisie. J'ai beau bidouiller les paramètres side et anchor, rien n'y fait, je n'arrive pas à superposer les deux labels correctement mais surtout à les aligner avec les champs de saisie qui leurs correspondent.
Sauriez-vous comment faire ? Ais-je fait une erreur quelque part ?
Bien cordialement
PS : L'intégralité du code ci-dessous
PS2: Voici ce qu'on obtient, comme vous voyez l'alignement est pas top :/

J'ai commencé récemment à coder une petite application en Python. Pour le moment j'en suis à l'écran d'accueil et j'utilise Tkinter pour l'interface graphique. J'ai créé une fenêtre TopLevel (qui se superpose sur une autre juste derrière) qui demande à l'utilisateur de rentrer un username et un mot de passe (identifiants uniques pour le moment). L'algorithme fonctionne très bien.
Le problème est, vous pourrez le constater sur le screen ci-joint, un souci d'alignement des deux labels par rapport aux champs de saisie. J'ai beau bidouiller les paramètres side et anchor, rien n'y fait, je n'arrive pas à superposer les deux labels correctement mais surtout à les aligner avec les champs de saisie qui leurs correspondent.
Sauriez-vous comment faire ? Ais-je fait une erreur quelque part ?
Bien cordialement
PS : L'intégralité du code ci-dessous
from tkinter import *
import os
from tkinter.messagebox import * # boîte de login
from PIL import Image
Fen = Tk()
Fen.attributes("-fullscreen", 1) #fenetre principale en plein écran
fen2 = Toplevel(Fen)
Fen.title('Topnote, logiciel de saisie de livret scolaire')
fen2.wm_attributes('-topmost', 1) #fenetre premier plan (pour login) et centrage de la principale
Fen.eval('tk::PlaceWindow %s center' % Fen.winfo_pathname(Fen.winfo_id()))
image = PhotoImage(file='fond.gif')
canvas = Canvas(Fen, width=1, height=1)
canvas.pack(fill=BOTH, expand=True)
canvas.create_image(670, 400, image=image, anchor=CENTER)
def center_window(width=100, height=20):
# get screen width and height
screen_width = fen2.winfo_screenwidth()
screen_height = fen2.winfo_screenheight()
# calculate position x and y coordinates
x = (screen_width/2) - (width/2)
y = (screen_height/1.2) - (height/1.2)
fen2.geometry('%dx%d+%d+%d' % (width, height, x, y))
center_window(280, 100)
def Verification():
if Motdepasse.get() == 'python27'and Utilisateur.get() == 'superdev':
# le mot de passe est bon : on affiche une boîte de dialogue puis on ferme la fenêtre
showinfo('Résultat','Connexion réussie !\nAu revoir !')
fen2.destroy()
else:
# le mot de passe est incorrect : on affiche une boîte de dialogue
showwarning('Résultat','Mot de passe et/ou identifiant incorrect(s).\nVeuillez recommencer !')
Motdepasse.set('')
Utilisateur.set('')
# Création de la fenêtre de login
fen2.title('Identification requise')
# Création des widgets Labels : Nom d'utilisateur et mot de passe
Label_1 = Label(fen2, text = "Nom d'utilisateur :")
Label_1.pack(side = TOP, anchor=W, padx = 0, pady = 1)
Label2 = Label(fen2, text = 'Mot de passe : ')
Label2.pack(side = LEFT,anchor=CENTER, padx = 0, pady = 1)
Utilisateur= StringVar()
Champ = Entry(fen2, textvariable= Utilisateur, show='', bg ='bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = TOP, anchor=CENTER, padx = 0, pady =0)
Motdepasse= StringVar()
Champ = Entry(fen2, textvariable= Motdepasse, show='*', bg ='bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = TOP, anchor=CENTER, padx = 0, pady = 2)
# Création d'un widget Button (bouton Valider)
Bouton = Button(fen2, text ='Valider', command = Verification)
Bouton.pack(side = BOTTOM, anchor=CENTER, padx = 0, pady = 0)
fen2.mainloop()
Fen.mainloop()
PS2: Voici ce qu'on obtient, comme vous voyez l'alignement est pas top :/

A voir également:
- Tkinter : problème positionnement labels et champs de saisie
- Probleme tkinter injustifier - Forum Python
- Pygame ou tkinter ? - Forum Python
- Probleme collision avec tkinter - Forum Python
- Problème avec grid tkinter ✓ - Forum Python
- Tkinter canvas rotate - Forum Python