繁体   English   中英

我该如何调整按钮的大小

[英]how can i make my buttons resize

试图让我的按钮与窗口大小调整时感到头痛。 我尝试了各种各样的方法,但无济于事,我设法使按钮在调整大小时可以移动位置,但是似乎无法将按钮绑定到屏幕上,我只是报错。

我将脚本的范围缩小到仅一个功能,因此它易于阅读,如果有人可以将我指向正确的方向,我将非常有义务。

谢谢

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

我知道了,必须更改为pack方法,但最终还是将其破解了,谢谢您的帮助

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM