如何从一个线程中停止Python PyGame程序

时间:2016-07-18 06:42:57

标签: python pygame python-multithreading

我的PyGame测试代码中有一个帖子,正在监听pygame.QUIT事件。每当它检测到该事件时,它应该退出整个程序。相反,使用exit(0)它只会停止侦听器线程。

class ListenerThread(threading.Thread):
    def run(self):
        while True:
            print "Listening..."
            events = pygame.event.get()
            for event in events:
                if event.type == pygame.QUIT:
                    exit(0)

            time.sleep(1)

listener = ListenerThread()
listener.setDaemon(True)
listener.start()

print "Listening..."time.sleep(1)仅用于测试目的。

我还有一些图形代码,每当我运行程序时,终端只重复说Listening...,然后当我点击'x'按钮关闭窗口时,线程在下一个停止后停止Listening...,但图形内容仍在继续,所以我必须手动关闭程序。

所以,问题是,如何从线程中关闭整个程序?

0 个答案:

没有答案