python - 在 tkinter 窗口之间来回切换

标签 python tkinter

我目前正在努力创建一个包含多个 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/

相关文章:

python - 获得 `n` 独立几何随机变量之和的最快方法

Python Tkinter。如何通过标签中的按钮存储条目

python turtle 图形窗口无法打开

linux - 在 stdout 中打印从底部开始的第 3 行

python - 按钮位于框架后面

python - 命名添加了 pandas 数据框的列

python - 在 python 3.6.1 中找不到平台相关库 <exec_prefix>

python - 如何打印最后一次出现的字符串加上后面的 N 行

python - 在sklearn中使用自定义评分功能

python - 如何在 Tkinter 文本小部件中将文本居中?