我的代码如下所示:
app = QApplication(sys.argv)
self.interface = Interface()
# The figure
self.fig = self.interface.fig
self.ax = self.fig.add_subplot(111)
self.interface.show()
app.exec_()
print 'this is not printed'
问题是一旦 app.exec_()
被执行,在我关闭弹出的窗口之前什么都没有。
如何继续运行代码?
最佳答案
这是有意的。您需要做的是在调用 app.exec() 之前使用信号/槽、Qt 类中的代码或生成线程。
信号和槽实际上是您与 Qt 交互的方式。基本上,信号是任何“事件”或自定义“事件”,而插槽可以被认为是“事件处理程序”。例如,当有人点击 GUI 上的按钮时,它会创建一个信号来寻找连接到它的任何处理程序。您可以将一个、一个或多个插槽连接到每个信号(您甚至可以多次连接同一个插槽)! Here is a good reference在 python 中进行此操作。
在您的 Qt 类中编码通常意味着创建对您有用的插槽。请记住,您不想让事件循环持续太久,因此如果您这样做,请生成一个新线程。
您可以使用的第三个选项是分拆其他线程。从线程与 Qt 交互时要小心,如果你这样做,你必须使用信号和槽。将线程实现为 suggested in this SO .
关于python - PyQt:app.exec_() 停止运行以下所有代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23142719/