Проблема с размером кнопки при использовании Tkinter (): python - PullRequest
0 голосов
/ 30 апреля 2020

У меня проблемы с некоторыми кнопками, которые больше, чем другие в следующей форме Tkinter? Пожалуйста, посмотрите код относительно того, как я отформатировал кнопки и прикрепленное изображение: [моя форма] [1]

from tkinter import *
def raise_frame(frame):
    frame.tkraise()
window = Tk()
window.title('Title')
window.configure(background = 'black')
#home page
Home = Frame(window)
Home.grid(row=0,column=0,sticky = 'news')
Label(Home, text = "Category",fg='light green',bg = 'black',font = 'none 12 bold').grid(row=0,column=0,columnspan = 5,sticky = 'nesw')

#A-Z buttons
_fg = 'light green'
_font = 'none 12 bold'
_sticky = 'news'

Button(window, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(window, text = 'B',bg = _fg,font = _font) .grid(row=1,column=1, columnspan = 1, sticky = _sticky)
Button(window, text = 'C',bg = _fg,font = _font) .grid(row=1,column=2, columnspan = 1, sticky = _sticky)
Button(window, text = 'D',bg = _fg,font = _font) .grid(row=1,column=3, columnspan = 1, sticky = _sticky)
Button(window, text = 'E',bg = _fg,font = _font) .grid(row=1,column=4, columnspan = 1, sticky = _sticky)
Button(window, text = 'F',bg = _fg,font = _font) .grid(row=1,column=5, columnspan = 1, sticky = _sticky)

Button(window, text = 'G',bg = _fg,font = _font) .grid(row=2,column=0, columnspan = 1, sticky = _sticky)
Button(window, text = 'H',bg = _fg,font = _font) .grid(row=2,column=1, columnspan = 1, sticky = _sticky)
Button(window, text = 'I',bg = _fg,font = _font) .grid(row=2,column=2, columnspan = 1, sticky = _sticky)
Button(window, text = 'J',bg = _fg,font = _font) .grid(row=2,column=3, columnspan = 1, sticky = _sticky)
Button(window, text = 'K',bg = _fg,font = _font) .grid(row=2,column=4, columnspan = 1, sticky = _sticky)
Button(window, text = 'L',bg = _fg,font = _font) .grid(row=2,column=5, columnspan = 1, sticky = _sticky)

raise_frame(Home)
window.mainloop()

1 Ответ

0 голосов
/ 30 апреля 2020

Причина, по которой ваш первый столбец больше, заключается в том, что вы, скорее всего, добавили метку категории на позицию row =0, col = 0. Это заставляет все кнопки в первом столбце использовать размер слова category. (Это не показано в вашем примере кода, но на рисунке). Вам нужно изменить columnspan категории, чтобы использовать все доступные столбцы (например, columnspan = 6). Таким образом, кнопки A, G, M, S, Y будут только такими широкими, какими они должны быть. Пожалуйста, попробуйте опубликовать полный код / ​​снимок категории

, и все кнопки должны быть добавлены в один родительский фрейм, чтобы это работало

Фиксированный код:

from tkinter import *
def raise_frame(frame):
    frame.tkraise()
window = Tk()
window.title('Title')
window.configure(background = 'black')
#home page
Home = Frame(window)
Home.grid(row=0,column=0,sticky = 'news')

l = Label(Home, text = "Category",fg='light green',bg = 'black',font = 'none 12 bold')
l.grid(row=0,column=0,columnspan = 6,sticky = 'nesw')

#A-Z buttons
_fg = 'light green'
_font = 'none 12 bold'
_sticky = 'news'

Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'B',bg = _fg,font = _font) .grid(row=1,column=1, columnspan = 1, sticky = _sticky)
Button(Home, text = 'C',bg = _fg,font = _font) .grid(row=1,column=2, columnspan = 1, sticky = _sticky)
Button(Home, text = 'D',bg = _fg,font = _font) .grid(row=1,column=3, columnspan = 1, sticky = _sticky)
Button(Home, text = 'E',bg = _fg,font = _font) .grid(row=1,column=4, columnspan = 1, sticky = _sticky)
Button(Home, text = 'F',bg = _fg,font = _font) .grid(row=1,column=5, columnspan = 1, sticky = _sticky)

Button(Home, text = 'G',bg = _fg,font = _font) .grid(row=2,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'H',bg = _fg,font = _font) .grid(row=2,column=1, columnspan = 1, sticky = _sticky)
Button(Home, text = 'I',bg = _fg,font = _font) .grid(row=2,column=2, columnspan = 1, sticky = _sticky)
Button(Home, text = 'J',bg = _fg,font = _font) .grid(row=2,column=3, columnspan = 1, sticky = _sticky)
Button(Home, text = 'K',bg = _fg,font = _font) .grid(row=2,column=4, columnspan = 1, sticky = _sticky)
Button(Home, text = 'L',bg = _fg,font = _font) .grid(row=2,column=5, columnspan = 1, sticky = _sticky)

raise_frame(Home)
window.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...