如何检查是否有类运行?

2024-05-04 05:22:29 发布

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

我做了这个基本的代码只是想发到这里看看我能不能找到一个解决方案。你知道吗

我希望代码执行以下操作:当我按下按钮时,它用另一个按钮调用另一个类,如果我再次按下按钮,它将检查该类是否仍在显示,以免添加另一个X按钮。我的代码为您看到的结果,并遵循一个代码库,供读者理解。你知道吗

https://imgur.com/a/UAx6xxd

from tkinter import *
class Window:
    def __init__(self,root):
        self.frame = Frame(root)
        self.frame.pack(side = LEFT)
        self.frame1 = Frame(root)
        self.frame1.pack()
        self.But = Button(self.frame,text = 'Press', command = self.ButOk)
        self.But.pack(side = LEFT,anchor = E)

    def ButOk(self):
        self.Aux = False
        self.Aux = not self.Aux
        if self.Aux:
            Window1(root)

class Window1:
    def __init__(self,root):
        self.fram = Frame(root)
        self.fram.pack(side = LEFT)
        self.fram1 = Frame(root)
        self.fram1.pack()

        self.But = Button(self.fram, text = 'X',command = self.close)
        self.But.pack(side =RIGHT,anchor = W)
    def close(self):
        self.Aux1 = False
        self.Aux1 = not self.Aux1
        if self.Aux1:
            self.fram.pack_forget()
root=Tk()
Window(root)
root.mainloop()

我预期的结果是,当用户按下按钮时,它不会生成这个“窗口”。你知道吗


Tags: 代码selfdefrootleft按钮frameside
1条回答
网友
1楼 · 发布于 2024-05-04 05:22:29

如果我正确理解了您的问题,那么您希望确保不会通过多次单击根级别窗口上的按钮来创建多个窗口。你知道吗

创建多个窗口时,请尝试使用TopLevel小部件。 此外,您可以使用以下代码检查顶级小部件是否存在:

if tkinter.Toplevel.winfo_exists(toplevel_name)==1:
    self.Aux = False

相关问题 更多 >