Placer des objets dans le milieu d'un cadre en tkinter python
Je veux créer un jeu qui peut être joué en plein écran et dans tous les autres la taille de la fenêtre. Pour cela, j'ai le code de la création d'un cadre, deux boutons et d'une étiquette. Je veux que les Boutons et l'étiquette pour être dans le centre de l'image, mais je ne peux pas comprendre comment le faire.
Comme une solution temporaire, j'ai placé un vide noir de l'étiquette sur le dessus des boutons, mais maintenant cela ne fonctionne pas avec mes idées.
Voici le code que j'ai maintenant:
import tkinter as tk
def startgame():
pass
mw = tk.Tk()
mw.title('The Game')
back=tk.Frame(master=mw, width=500, height=500, bg='black')
back.pack_propagate(0)
back.pack(fill=tk.BOTH, expand=1) #Adapts the size to the window
#Here I had the label
go = tk.Button(master=back, text='Start Game', command=startgame, bg='#111', fg='red')
go.pack()
close = tk.Button(master=back, text='Quit', command=mw.destroy, bg='#111', fg='red')
close.pack()
info = tk.Label(master=back, text='Made by me!', bg='red', fg='black')
info.pack()
mw.mainloop()
Question: Comment configurer les boutons etc au milieu constamment?
- Vous devez juste être capable de l'utiliser .pack(anchor=CENTRE)
- Cela ne fonctionne pas. Je l'ai mis dans les boutons et l'étiquette, mais il ne fonctionne pas. Ai-je raté quelque chose?
Vous devez vous connecter pour publier un commentaire.
Il existe de nombreuses façons pour centre un widget dans un autre wiget. Dans les exemples suivants, il est supposé que vous voulez
back
reste de sa taille d'origine, et pour qu'il soit centré dans la fenêtre racine. Une fois que vous avez ce widget centré, vous pouvez alors vous concentrer sur le placement de l'intérieur des widgets à l'intérieur cependant, vous choisissez, et le cadre de rester centré.Remarque: pour avoir
back
ajuster les boutons (tout en restant centré), supprimez cette ligne:À l'aide de pack
Avec le pack, vous voulez tourner expansion (
expand=True
), mais pas le widget de remplir sa région (fill="none"
).À l'aide de la grille de
À l'aide de la grille, la technique consiste à créer une grille 3x3, le cadre, le centre de la cellule. Vous devez alors assurez-vous que toutes les lignes et colonnes sauf le centre de l'un sont un poids, de sorte que tout espace supplémentaire va vers eux plutôt que d'aller dans le centre:
À l'aide de la place
Sans doute la solution la plus simple est d'utiliser
place
. Avec la place que vous simplement demander à tkinter, pour placer le centre du widget à une relative position x et y de 5back
-cadre, et pas dans le dos-image centrée dans la mw. Comment faire? Le dos doit toujours être la plus grande possible, vous devriez être en mesure de modifier la taille de la mw avec lesback
-Fame adapter la taille et l'intérieur des widgets de l'emménagement dans le nouveau milieu.