我是python新手,刚开始使用'tkinter'模块。我正在尝试使用一个从'Frame'对象继承的自定义类将不同的小部件组合到一个全新的小部件中,并希望垂直堆叠4个这样的新部件。在
每个新的小部件都包含1个“标签”、3个“条目”小部件和2个“按钮”小部件(按钮小部件在4个新部件中各有不同的用途)。在
为了垂直排列它们,我使用了没有参数的'pack()'方法。问题不是以垂直方式显示,而是将所有6个旧部件以“分组”方式放置在新部件中,“所有窗口小部件的第一个显示”与“其他所有部件”的值混合显示。在
这是我的类“OperationPanel”的一部分(实际类太大,无法显示,但存在诸如减法等其他操作,并且按钮链接到的所有函数也存在):
class OperationPanel(Frame):
def __init__(self, app, operation):
Frame.__init__(self, app)
if operation == "addition":
Label(app, text="Addition:").pack()
self.num1 = Entry(app)
self.num1.pack(side = LEFT)
self.num2 = Entry(app)
self.num2.pack(side = LEFT)
self.disp = Entry(app)
self.disp.pack(side = LEFT)
Button(app, text="Reset", command=self.reset_add).pack(side = RIGHT)
Button(app, text="Add!", command=self.calc_add).pack(side = RIGHT)
elif operation == "subtraction":
Label(app, text="Subtraction:").pack()
self.num1 = Entry(app)
self.num1.pack(side = LEFT)
self.num2 = Entry(app)
self.num2.pack(side = LEFT)
self.disp = Entry(app)
self.disp.pack(side = LEFT)
Button(app, text="Reset", command=self.reset_sub).pack(side = RIGHT)
Button(app, text="Subtract!", command=self.calc_sub).pack(side = RIGHT)
elif operation == "multiplication":
Label(app, text="Multiplication:").pack()
self.num1 = Entry(app)
self.num1.pack(side = LEFT)
self.num2 = Entry(app)
self.num2.pack(side = LEFT)
self.disp = Entry(app)
self.disp.pack(side = LEFT)
Button(app, text="Reset", command=self.reset_mul).pack(side = RIGHT)
Button(app, text="Multiply!", command=self.calc_mul).pack(side = RIGHT)
elif operation == "division":
Label(app, text="Division:").pack()
self.num1 = Entry(app)
self.num1.pack(side = LEFT)
self.num2 = Entry(app)
self.num2.pack(side = LEFT)
self.disp = Entry(app)
self.disp.pack(side = LEFT)
Button(app, text="Reset", command=self.reset_div).pack(side = RIGHT)
Button(app, text="Divide!", command=self.calc_div).pack(side = RIGHT)
。。。在
下面是我对OperationPanel对象的调用:
^{pr2}$下面是GUI现在的外观:
第1部分:
第2部分:
在这方面如有任何帮助,我们将不胜感激。提前谢谢!在
看起来您正在使用
app
的父级创建所有小部件。它们的父级应该是self
:相关问题 更多 >
编程相关推荐