我想知道如何使我的文本和按钮在调整窗口大小时不会移动! 我想不通,这真的很烦人,因为我无法将它们正确地放置在我想要的位置,因为在窗口的每个分辨率下它们都会不同。
目前,我找到了一个解决方案,即在窗口打开时强制全屏。然而,当我做其他项目时,它已经多次成为我的问题。
这是我针对这个特定窗口的全部代码:
# Crée la fenêtre des paramètres du démineur
def parDemineur():
parfenetre = Tk()
#Assigne pour titre à la fenêtre "Paramètres du Jeu du Démineur"
parfenetre.title("Paramètres du Jeu du démineur")
#Image du démineur
img = ImageTk.PhotoImage(master=parfenetre, file='ParDemineur.png')
#Affiche l'image
label = Label(parfenetre, image = img)
label.pack()
#Change la taille afin que la fenêtre puisse tout afficher
parfenetre.minsize(400, 900)
parfenetre.maxsize(400, 400)
# Gère la création de la fenêtre avec sa largeur, sa hauteur, son fond)
canvas = Canvas(parfenetre , width =750, height=500 , background='white')
canvas.pack()
#Place la fenêtre au centre de l'écran
parfenetre.eval('tk::PlaceWindow . center')
# Utilise CTkButton à la place du bouton de Tkinter, permettant plus de personnalisation. Le bouton une fois appuyé, permet de fermer la fenêtre des paramètres.
boutonstart = customtkinter.CTkButton(master=parfenetre, text="Commencer à jouer !", font=("helvetica", 20, "bold"), command=parfenetre.destroy)
#Situe le bouton dans la fenêtre ainsi que sa taille
boutonstart.place(relx=0.5, rely=0.9,relheight=0.125, relwidth=0.3, anchor=CENTER)
# Utilise CTkButton à la place du bouton de Tkinter, permettant plus de personnalisation. Le bouton une fois appuyé, permet de fermer la fenêtre des paramètres.
boutonstart = customtkinter.CTkButton(master=parfenetre, text="Quitter",fg_color="red", font=("helvetica", 20, "bold"), command=parfenetre.destroy)
#Situe le bouton dans la fenêtre ainsi que sa taille
boutonstart.place(relx=0.94, rely=0.08,relheight=0.05, relwidth=0.08, anchor=CENTER)
#Affiche le texte de prévention avec ses caractéristiques
ContenuPar = Label(parfenetre, text="Choix de Difficulté :", font=("helvetica", 10))
#Gère la position du message de difficulté
ContenuPar.place(relx=0.35, rely=0.35, anchor=CENTER)
#Force la fenêtre à être ouverte en pleine écran
parfenetre.attributes('-fullscreen', True)
# Attend que la fenêtre se ferme pour continuer le code
parfenetre.wait_window(parfenetre)
parDemineur()