我正在使用python为windows创建桌面应用程序。我使用Tkinter进行GUI。我的代码涉及在执行时触发GUI。 我的要求是,在任何给定的时间点,我应该只运行一个GUI实例。我可以设置一些阻止在Tkinter中创建新实例的参数吗?
请为此建议一些选项。
答案 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