Python创建按钮和条目小部件
我一直在谷歌上搜索这个问题,找不到任何好的网站。。。。 我想创建按钮和条目小部件,如下所示: [A] [B][C][D][E][F] [ENTRYWIDGET HERE][OK] 我的代码如下所示: 类控制器(帧): 这看起来和我想创造的完全不同Python创建按钮和条目小部件,python,tkinter,Python,Tkinter,我一直在谷歌上搜索这个问题,找不到任何好的网站。。。。 我想创建按钮和条目小部件,如下所示: [A] [B][C][D][E][F] [ENTRYWIDGET HERE][OK] 我的代码如下所示: 类控制器(帧): 这看起来和我想创造的完全不同 任何反馈都将不胜感激。谢谢。您只需将按钮放入另一个框架中即可 示例: from Tkinter import * from ttk import * class Controller(Frame): def __init__(self,p
任何反馈都将不胜感激。谢谢。您只需将按钮放入另一个
框架中即可
示例:
from Tkinter import *
from ttk import *
class Controller(Frame):
def __init__(self,parent):
Frame.__init__(self, parent)
buttons = Frame(parent)
buttons.pack(side=TOP)
for letter in 'ABCDEF':
Button(buttons, text=letter).pack(side=LEFT)
Entry(parent, width=50).pack(side=LEFT)
Button(parent, text='OK').pack(side=RIGHT)
root = Tk()
app = Controller(root)
root.mainloop()
结果:
from Tkinter import *
from ttk import *
class Controller(Frame):
def __init__(self,parent):
Frame.__init__(self, parent)
buttons = Frame(parent)
buttons.pack(side=TOP)
for letter in 'ABCDEF':
Button(buttons, text=letter).pack(side=LEFT)
Entry(parent, width=50).pack(side=LEFT)
Button(parent, text='OK').pack(side=RIGHT)
root = Tk()
app = Controller(root)
root.mainloop()
编辑以回答您的评论
如果要坚持使用for
循环来创建按钮,应用事件处理程序的一个好方法是创建按钮的映射,以便使用dict
调用:
handler = {'A': function_A,
'B': function_FooBar,
'C': function_SomeThing}
for letter, func in ((k, handler[k]) for k in sorted(handler)):
Button(buttons, text=letter, command=func, width=10).pack(side=LEFT)
这样,它很容易扩展。如果你不在乎按钮的顺序,你可以使用
for letter, func in handler.items():
或者,您可以使用另一个布局管理器,例如使用更具表现力的方法
def __init__(self,parent=None):
Frame.__init__(self, parent)
self.grid()
# create buttons in row 1
for i, c in enumerate("ABCDEF"):
self.button = Button(parent, text=c)
self.button.grid(row=1, column=i+1)
# create textfield and 'ok' in row 2
self.myentrybox = Entry(parent, width = 50)
self.myentrybox.grid(row=2, column=1, columnspan=6)
self.button = Button(parent, text = "OK")
self.button.grid(row=2, column=7)
你应该把你正在使用的库。。。我不认为它是wx…你们需要使用其中一个并告诉它如何安排你们的小部件。非常感谢你们的回复。在这种情况下,如何定义每个按钮的命令?@JuM视情况而定。那些按钮应该做什么?它们是否以某种方式相互关联,例如用另一个参数或类似的东西调用某个方法?它们真的被命名为A
…F
?