[英]How do I make my program resize the buttons and the layout automatically? (Kivy, Python)
[英]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.