Есть ли способ, которым я могу центрировать сетку в tkinter? - PullRequest
1 голос
/ 21 января 2020

Моя идея состоит в том, чтобы создать GUI с сеткой, и я хочу, чтобы сама сетка была центрирована в окне.

root = Tk()
root.state('zoomed')
telaInicial = Frame(root)

botaoNovoAluno = Button(telaInicial, text = "Novo aluno", padx = 5, pady = 5)
botaoEliminarAluno = Button(telaInicial, text = "Eliminar aluno", padx = 5, pady = 5)
botaoAvaliacaoAluno = Button(telaInicial, text = "Avaliaçao aluno", padx = 5, pady = 5)
botaoVerDados = Button(telaInicial, text = "Ver dados", padx = 5, pady = 5)

botaoNovoAluno.grid(row = 0, column = 0, padx = 10, pady = 10)
botaoEliminarAluno.grid(row = 0, column = 2, padx = 10, pady = 10)
botaoAvaliacaoAluno.grid(row = 1, column = 1, padx = 10, pady = 10)
botaoVerDados.grid(row = 2, column = 1, padx = 10, pady = 10)

raise_frame(telaInicial)
root.mainloop()

Примечание: извините за Engli sh, его не мой родной язык.

1 Ответ

1 голос
/ 21 января 2020

Простое решение состоит в том, чтобы поместить ваш кадр в строку и столбец 1, а затем применить веса к столбцу / строке 0 и 2. Это будет держать все в вашем кадре по центру.

Вот пример:

import tkinter as tk

root = tk.Tk()
root.state('zoomed')
telaInicial = tk.Frame(root)
telaInicial.grid(row=1, column=1)
root.columnconfigure(0, weight=1)
root.columnconfigure(2, weight=1)
root.rowconfigure(0, weight=1)
root.rowconfigure(2, weight=1)

botaoNovoAluno = tk.Button(telaInicial, text="Novo aluno", padx=5, pady=5)
botaoEliminarAluno = tk.Button(telaInicial, text="Eliminar aluno", padx=5, pady=5)
botaoAvaliacaoAluno = tk.Button(telaInicial, text="Avaliaçao aluno", padx=5, pady=5)
botaoVerDados = tk.Button(telaInicial, text="Ver dados", padx=5, pady=5)

botaoNovoAluno.grid(row=0, column=0, padx=10, pady=10)
botaoEliminarAluno.grid(row=0, column=2, padx=10, pady=10)
botaoAvaliacaoAluno.grid(row=1, column=1, padx=10, pady=10)
botaoVerDados.grid(row=2, column=1, padx=10, pady=10)

root.mainloop()

Результаты:

enter image description here

Тем не менее, вы можете потратить некоторое время на чтение PEP8 . Использование стандартного соглашения об именах облегчит чтение вашего кода для всех.

...