python - PyQt:app.exec_() 停止运行以下所有代码

标签 python pyqt pyqt4

我的代码如下所示:

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/

相关文章:

用于自动完成文档字符串的 python IDE

python-2.7 - 如何在 PyQT 应用程序中集成 Ipython 控制台

Python - 将 Fabric 与 Sudo 结合使用

python - 尝试使用 pipenv 安装时出现 ValueError

python - 转义单引号时出现问题

python - 更改pyqt中QCheckBox的文本颜色

python - 如何创建具有并行的多行字形/文本的 GUI,其中字形具有 x 和 y 坐标

python - 如何修复 Qtab 并在选项卡区域创建更多按钮和文本行

python - 在 PyQt 中,如何将 QImage 转换为像素列表?

python - 是否可以在 Virtualenv 沙箱上添加 PyQt4/PySide 包?