防止创建多个GUI实例

时间:2016-03-29 15:14:43

标签: python tkinter python-3.4

我正在使用python为windows创建桌面应用程序。我使用Tkinter进行GUI。我的代码涉及在执行时触发GUI。 我的要求是,在任何给定的时间点,我应该只运行一个GUI实例。我可以设置一些阻止在Tkinter中创建新实例的参数吗?

请为此建议一些选项。

1 个答案:

答案 0 :(得分:1)

如果某人在已经运行时尝试生成GUI,您希望采用什么类型的行为? 基本上你可以做的是在你的类中添加一个num_instances属性,每次创建一个实例时它都会递增,然后在你的类__del__方法中递减。然后,您可以在__init____new__中进行检查,具体取决于您想要的行为。

class GUI:
    num_instances = 0

    def __init__(self):
        if self.__class__.num_instances:
            raise
        self.__class__.num_instances += 1

    def __del__(self):
        self.__class__.num_instances -= 1

这只是一个草稿,所以检查它确实总是按照需要行事,但它应该让你去。

修改 我忘了提及它,但当然你也可以查看singleton pattern

编辑2: 要防止多次运行,请查看this post