tkinter中的Frame对象不在python中分组小部件

2024-05-29 03:49:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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部分:

the left side of the image

第2部分:

enter image description here

在这方面如有任何帮助,我们将不胜感激。提前谢谢!在


Tags: textselfrightapp部件buttonleftoperation

热门问题