尝试让按钮随窗口调整大小时一直头疼。 我尝试了各种各样的方法,但无济于事,我设法让按钮在调整大小时移动位置,但似乎无法将按钮绑定(bind)到屏幕,我只是收到错误。
我已将我的脚本缩小到只有一个函数,以便更容易阅读,如果有人能指出我正确的方向,我将非常感激。
谢谢
#!/usr/bin/python
from Tkinter import*
resizeTest = Tk()
resizeTest.title('Resize Test')
resizeTest.geometry('220x100')
menubar = Menu(resizeTest)
#----------view menu
def normal():
resizeTest.geometry('220x100')
def enlarge():
resizeTest.geometry('500x360')
viewMenu = Menu(menubar, tearoff = 0)
viewMenu.add_command(label="Enlarge Alt+1", command=enlarge)
viewMenu.add_command(label="Normal Alt+2", command=normal)
menubar.add_cascade(label="View", menu=viewMenu)
buttons = Frame(resizeTest, bd=0, width=5, height=1, relief=GROOVE)
buttons.grid(column=0, row=1, padx=1)
numbers=["7", "4", "1", "8", "5", "2", "9", "6", "3"]
for index in range(9):
n=numbers[index]
Button(buttons, bg="White", text=n,width=5,height=1, relief=GROOVE).grid(padx=2,pady=2, row=index%3,column=index/3)
resizeTest.config(menu=menubar)
resizeTest.mainloop()
最佳答案
你尝试过这样的事情吗?添加一个函数来创建带有宽度和高度参数的按钮,可以在调整大小函数中调用,以设置按钮以匹配窗口大小。不完全自动绑定(bind),但它可以工作。
#!/usr/bin/python
from Tkinter import*
resizeTest = Tk()
resizeTest.title('Resize Test')
resizeTest.geometry('220x100')
menubar = Menu(resizeTest)
#----------view menu
def normal():
buttons.grid_forget()
resizeTest.geometry('220x100')
add_buttons(5, 1)
def enlarge():
buttons.grid_forget()
resizeTest.geometry('500x360')
add_buttons(18, 6)
def add_buttons(w,h):
global buttons
buttons = Frame(resizeTest, bd=0, relief=GROOVE)
buttons.grid(column=0, row=1, padx=1)
numbers=["7", "4", "1", "8", "5", "2", "9", "6", "3"]
for index in range(9):
n=numbers[index]
Button(buttons, bg="White", text=n, width=w, height=h, relief=GROOVE).grid(padx=2,pady=2, row=index%3,column=index/3)
viewMenu = Menu(menubar, tearoff = 0)
viewMenu.add_command(label="Enlarge Alt+1", command=enlarge)
viewMenu.add_command(label="Normal Alt+2", command=normal)
menubar.add_cascade(label="View", menu=viewMenu)
add_buttons(5, 1)
resizeTest.config(menu=menubar)
resizeTest.mainloop()
关于python - 我怎样才能调整我的按钮大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690628/