我目前正在努力创建一个包含多个 Windows 的 tkinter 项目。我想要的只是在我的计划中定期前进并逐步倒退。经过大量研究后,我正在努力寻找一个解释如何做到这一点的示例。
我尝试在几篇文章之后创建一个最小的示例,但它还没有工作,说实话,我真的不明白我在做什么。
我最大的引用文献是这篇文章,但它相当长且复杂: tkinter - Going Back and Forth Between Frames Using Buttons
另一方面,这个例子还不足以让我理解。结合和解释可能已经达到了目的: Tkinter open and close Toplevel windows
- 您能帮我创建一个最小的示例(包含或不包含实际窗口的代码)吗?
- 并解释发生了什么事。我认为它很简单,所以我想解释可能会相当简短。 (如果您知道有一个教程网站对其进行了很好的解释,我也会很高兴)
提前致谢,希望我们能为我和其他人创建有用的资源。
def Forward(self):
# Open secondary Window
Secondary_Win = Toplevel()
#Close primary Window
Main_Win.withdraw() #.deiconify() to show again
Main_Win.destroy()
def Backward(self):
# Close secondary Window
Secondary_Win.withdraw
#Open primary Window
Main_Win.deiconify()
编辑:正如 @stovfl 指出的那样:我想在实际的 Windows 之间切换,而不仅仅是框架。抱歉,措辞上出现了问题。
最佳答案
也许这与您正在寻找的内容有些接近:
from tkinter import *
root = Tk()
class temp_frame:
def __init__(self, master):
self.master = master
self.secondary_win = None
self.btn_next = Button(self.master, text="Forward", command=self.Forward)
self.btn_next.pack()
def Forward(self):
# Open secondary Window
if not self.secondary_win:
self.secondary_win = Toplevel()
back_btn = Button(self.secondary_win, text="Back", command=self.Backward)
back_btn.pack()
self.master.withdraw()
else:
self.secondary_win.deiconify()
self.master.withdraw()
def Backward(self):
self.secondary_win.withdraw()
self.master.deiconify()
temp = temp_frame(root)
root.mainloop()
说明:
框架是在temp_frame
类的帮助下创建的。该框架具有向后和向前的功能,按下前进时打开一个新窗口,按下向后时退出新窗口。当新窗口退出时,主窗口向前移动。
编辑:修改代码以避免每次按下“前进”时创建新窗口。
关于python - 在 tkinter 窗口之间来回切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57722007/