Python中的面向对象GUI开发

0 投票
2 回答
533 浏览
提问于 2025-04-15 23:01

大家好,我是新手程序员。我在上课的时候遇到一个作业,现在卡住了……我需要做的是创建一个图形界面(GUI),这个界面可以给用户出一个简单的算术题,然后让用户回答,最后评估答案并告诉用户对错……

简单来说,我现在有的代码是这样的:

class Lesson(Frame):
    def __init__ (self, parent=None):
        Frame.__init__(self, parent)
        self.pack()
        Lesson.make_widgets(self)

    def make_widgets(self):
        Label(self, text="").pack(side=TOP)

        ent = Entry(self)
        self.a = randrange(1,10)
        self.b = randrange(1,10)
        self.expr = choice(["+","-"])

        ent.insert(END, str(self.a) + str(self.expr) + str(self.a))

我把这个任务分解成了很多小步骤,现在我想做的是在第一个输入框里插入一个默认的随机算式。当我运行这段代码时,结果只是一个空的标签。为什么会这样呢?我该怎么把像“7+7”这样的内容放进这个框里?如果你需要了解更多背景信息,可以查看这个链接里的第3个问题。

http://reed.cs.depaul.edu/lperkovic/csc242/homeworks/Homework8.html

-提前感谢大家的帮助。

2 个回答

0

你是想改变标签还是输入框里的内容?我假设你是想改变输入框里的内容。简单来说,答案是:

ent.delete(0, END)
ent.insert(END, 'stringy thing')

但是在调用Tk()实例的mainloop()方法之前,界面是不会发生任何变化的。

0

text=""

中的内容改成

text="Label Text"

或者你想要显示的任何内容作为标签。

接下来,在你的 make_widgets 方法里的 ent.insert 后面加上

ent.pack()

撰写回答