我对Python非常陌生,必须编写一个简单的GUI程序,为了简单起见,我选择在tkinter中编写这个程序。在
我想要的GUI应该非常类似于在Windows上安装程序时经常遇到的对话框(你想在哪里安装,你想要什么模块,等等)。基本上,当它在python3.3中运行时,我希望出现一个窗口,其中一些选项占据了窗口的大部分,底部还有“next”、“back”和“cancel”按钮;通过单击“next”按钮,当前窗口关闭,并打开一个外观相同的新窗口,除了它有不同的选择(或者可能是同一个窗口,但是它的内容已经被破坏了,我不确定哪个更好)。我想要的粗略布局显示在this image
我到处找了一些类似的代码,但是没有找到任何代码。我看过this answer,但这不是我想要的。我用this tutorial来了解我对tkinter的了解,但我找不到答案。在
下面是我在简化我想做的事情的一个非常糟糕的尝试:当我运行代码时,它会创建一个带有两个按钮的窗口。“退出”按钮工作正常;但是,当我单击“下一步”按钮时,它会关闭窗口并根据需要打开一个新窗口,但也会打开另一个窗口。在from tkinter import *
from tkinter import ttk
def win1():
mainframe = ttk.Frame(root, padding = '3 3 12 12')
mainframe.grid(column = 0, row = 0, sticky = (N, W, E, S))
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
ttk.Button(mainframe, text = 'Next', command = win2).grid(
column = 1, row = 1, sticky = W)
ttk.Button(mainframe, text = 'Quit', command = quit).grid(
column = 1, row = 2, sticky = W)
root.mainloop()
def quit():
root.destroy()
def win2():
quit()
new = Toplevel()
new.title('Window 2')
new = ttk.Frame(root, padding = '3 3 12 12')
new.grid(column = 0, row = 0, sticky = (N, W, E, S))
new.columnconfigure(0, weight = 1)
new.rowconfigure(0, weight = 1)
ttk.Button(mainframe, text = 'Next', command = win2).grid(
column = 1, row = 1, sticky = W)
root = Tk()
win1()
这会显示以下错误消息(我不明白):
^{pr2}$
除了事实上它并没有实现我想要的功能,我觉得我做这件事的方式完全错误(在函数中定义窗口等等),当我想让它变得更复杂时会遇到很多麻烦。有没有人能用更好的方式重写我的代码,以帮助我构建更复杂的程序,提供一个资源来学习制作我想要的程序所需的资源,甚至提供建议?谢谢。在