新编程,无法让我的主窗口打开

时间:2015-04-27 23:42:20

标签: python tkinter

我尝试将它与我制作的其他程序进行比较,但到目前为止我没有看到任何错误。一个窗口应该显示4个按钮。

我包含了代码,所以如果有人弄清楚为什么我的TK窗口无法打开,这将有助于一吨

""" dndcc.py a dungeon and dragon character creator
    created by Alex Deal
    includes several objects and lots of windows
"""
from tkinter import *
from tkinter import MessageBox

class App(Tk):
    def __init__(self):
        Tk.__init__(self)

        self.headerFont = ("Times New Roman", "16", "bold italic")

        self.title("dnd character creator")

        self.btnNew = Button(self, text= "Create New", command = self.makeNewFrame)
        self.btnNew.grid(row = 0)

        self.btnSave = Button(self, text= "Save Current", command = self.saveFile)
        self.btnSave.grid(row = 1)

        self.btnLoad = Button(self, text = "Load File", command = self.loadFile)
        self.btnLoad.grid(row = 2)

        self.btnPrint = Button(self, text = "Create Character Sheet", command = self.characterSheet)
        self.btnPrint.grid(row = 3)

def main():
    app = App()
    app.mainloop()

if __name__ == "__main__":
    main()

关于传统知识的其他问题:

到目前为止,传统知识对我来说很难掌握。我的程序的其他部分没有太多问题,但我没有得到很多关于TK的东西。

具体来说,应用程序(TK)中的self.mainloop()和它外面的app.mainloop()有区别吗?我从现在的老师那里看到过。

此外,如何制作新框架?我似乎无法找到有关创建新框架的更多信息(即,在不打开新窗口的情况下更改当前窗口上的窗口小部件)。

1 个答案:

答案 0 :(得分:2)

如果这是您的确切代码,则需要两件事:

  1. 它是messagebox,而不是MessageBox
  2. 必须定义绑定到命令(makeNewFrame等)的函数,即使它们的实体现在只是pass
  3. 我解决了这些问题,并使用正确的按钮打开了主窗口。

    如果要更改窗口中显示的窗口小部件,请使用grid_forget()删除不需要的窗口小部件(如果愿意,也可以删除窗口小部件),或者只需使用config重新配置过时的窗口小部件。 Effbot有很多好消息。