Python GUI接口没有打开小部件?

2024-03-28 15:22:26 发布

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

我试图创建一个类似于待办事项列表的小部件:但我的程序似乎由于某种原因无法运行。它不会给出错误,但它不起作用。。?你知道吗

有人知道我的代码怎么了吗?你知道吗

from Tkinter import *
import tkFont

class App:

  def getTasks(self):
        return self.todo

  def getCompleted(self):
        return self.done

  def __init__(self, master):
        self.todo = todo.todoList()

        self.master = master
        self.frame - Frame(master)
        self.frame.grid()

        self.saveButton = Button(self.frame, text="Save", command=self.save)
        self.saveButton.grid()
        self.restoreButton = Button(self.frame, text="Restore", command=self.res)
        self.restoreButton.grid(row=0, column=1)
        self.addButton = Button(self.frame, text="Add", command = self.add)
        self.addButton.grid(row=0, column=2)
        self.doneButton = Button(self.frame, text = "Done", command = self.done)
        self.doneButton.grid(row=0, column=3)
        self.button = Button(self.frame, text="QUIT", command=self.quit)
        self.button.grid(row=0, column=4)

        label = Label(self.frame, text="New Task: ")
        label.grid()
        self.entry = Entry(self.frame)
        self.entry.grid(row=0, column=4)

        frame1 = LabelFrame(self.frame, text="Tasks")
        frame1.grid(columnspam = 5)
        self.tasks = Listbox(frame1)
        self.task.grid()

        frame2=LabelFrame(self.frame, text="Completed")
        frame2.grid(columnspan=5)
        self.completed= Listbox(frame2)
        self.completed.grid()

  def save(self):
        self.todo.saveList("tasks.txt")

  def restore(self):
        self.todo.restoreList("tasks.txt")
        items = self.todo.getTasks()
        self.tasks.delete(0, END)
        for item in items:
              self.tasks.insert(END, item)
        items = self.todo.getCompleted()
        self.completed.delete(0,END)
        for item in items:
              self.completed.insert(END,item)

  def add(self):
        task = self.entry.get()
        self.todo.addTask(task)
        self.tasks.insert(END,task)

  def done(self):
        selection = self.tasks.curselection()
        if len(selection) == 0:
               return
        task = self.tasks.get(selection[0])
        self.todo.completeTask(task)
        self.tasks.delete(selection[0])
        self.completed.insert(END,task)

有人知道错误是什么吗?你知道吗


Tags: textselfmastertaskdefcolumnbuttonframe
1条回答
网友
1楼 · 发布于 2024-03-28 15:22:26

您需要实际创建App的实例和Tkinter.Tk的实例:

...

if __name__ == '__main__':
    root = Tk()
    app = App(root)
    root.mainloop()

注意,我还没有试过你的代码的其余部分,所以我不知道它是否能工作,但这至少应该开始给你错误的工作。你知道吗

相关问题 更多 >