在窗户之间来回走动

2024-03-29 10:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在努力创建一个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指出的:我想在实际窗口之间切换,而不仅仅是框架。抱歉,措辞打嗝。你知道吗


Tags: andselfclosemaintkinterdefopenwindow
1条回答
网友
1楼 · 发布于 2024-03-29 10:26:49

也许这有点接近你想要的:

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的帮助下创建的。框架具有向后和向前功能,按“向前”时打开新窗口,按“向后”时收回新窗口。当新窗口退出时,主窗口向前移动。你知道吗

编辑:修改代码以避免每次按下“前进”键时都创建一个新窗口。你知道吗

相关问题 更多 >