我尝试将它与我制作的其他程序进行比较,但到目前为止我没有看到任何错误。一个窗口应该显示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()有区别吗?我从现在的老师那里看到过。
此外,如何制作新框架?我似乎无法找到有关创建新框架的更多信息(即,在不打开新窗口的情况下更改当前窗口上的窗口小部件)。
答案 0 :(得分:2)
如果这是您的确切代码,则需要两件事:
messagebox
,而不是MessageBox
。makeNewFrame
等)的函数,即使它们的实体现在只是pass
。我解决了这些问题,并使用正确的按钮打开了主窗口。
如果要更改窗口中显示的窗口小部件,请使用grid_forget()
删除不需要的窗口小部件(如果愿意,也可以删除窗口小部件),或者只需使用config
重新配置过时的窗口小部件。 Effbot有很多好消息。