Python 如何调整按钮的大小

Python 如何调整按钮的大小,python,python-2.7,tkinter,Python,Python 2.7,Tkinter,我一直很头痛,想让我的按钮和我的窗口一起调整大小。 我尝试了各种各样的方法,但都没有成功,我成功地让按钮在调整大小时移动到位置,但似乎无法将按钮绑定到屏幕上,我只是遇到了错误 我已经把我的脚本缩小到一个函数,这样更容易阅读,如果有人能给我指出正确的方向,我将不胜感激 谢谢 #!/usr/bin/python from Tkinter import* resizeTest = Tk() resizeTest.title('Resize Test') resizeTest.geometry('22

我一直很头痛,想让我的按钮和我的窗口一起调整大小。 我尝试了各种各样的方法,但都没有成功,我成功地让按钮在调整大小时移动到位置,但似乎无法将按钮绑定到屏幕上,我只是遇到了错误

我已经把我的脚本缩小到一个函数,这样更容易阅读,如果有人能给我指出正确的方向,我将不胜感激

谢谢

#!/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()

你试过这样的东西吗?可以在调整大小函数中调用添加函数来创建带有宽度和高度参数的按钮,以设置与窗口大小匹配的按钮。不完全自动绑定,但它可以工作

#!/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()

我知道了,不得不改成打包方式,但最终还是破解了,谢谢你的帮助

#!/usr/bin/python
from Tkinter import *
class resizeTest:
    def __init__( self, master ):
        def normal():
            self.ma.geometry('220x100')     
        def enlarge():
            self.ma.geometry('500x360')
        self.ma = master
        self.ma.title('Resize Test')
        self.ma.geometry('220x100')
        self.f = Frame( self.ma )
        self.f.pack(fill=BOTH, expand=YES)
        self.enlarge = Button( self.f, text='Enlarge', height=1, width=10, padx=0, pady=1, command=enlarge)
        self.enlarge.pack(side=LEFT, fill=BOTH,expand=YES)
        self.normal = Button( self.f, text='Normal', height=1, width=10, padx=0, pady=1, command=normal)
        self.normal.pack(side=RIGHT, fill=BOTH,expand=YES)
root = Tk()
app = resizeTest(root)
root.mainloop()

谢谢你的回复,是的,这正是我想要的,放大和正常的选择现在工作我想要的。现在唯一的问题是,当你拖动窗口的一角时,按钮无法调整大小,你知道我有什么办法可以解决这个问题吗。我想这会很复杂,因为按钮需要检查屏幕的大小并相应调整大小,如果按钮绑定到窗口的话??这件事让我抓狂了将近一个星期了,哈哈,我最好的办法就是把我的按钮放大,但当我点击“正常”按钮时,它只是把小按钮放在大按钮的上面。哈哈。每次我试图绑定按钮时,我都会出错,然后它就崩溃了。是的,我不知道该怎么做。我想,你需要一个函数来改变按钮的宽度和高度,但我不知道如何在手动调整大小的窗口中调用这个函数。我一直在尝试从这个函数实现代码,但它对我不起作用