我有一个代码,如下所示:
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_()
执行后,什么也没有,直到我关闭弹出的窗口。
我怎样才能继续运行代码?
这是有意的。您需要做的是使用信号/槽、Qt 类中的代码,或者在调用 app.exec() 之前生成线程。
信号和槽是与 Qt 交互的事实上的方式。基本上,信号是任何“事件”或自定义“事件”,而插槽可以被视为“事件处理程序”。例如,当有人点击 GUI 上的按钮时,它会创建一个信号来寻找连接到它的任何处理程序。您可以不将一个插槽连接到每个信号,也可以将一个或多个插槽连接到每个信号(您甚至可以多次连接同一个插槽)!这是一个很好的参考 http://techbase.kde.org/Development/Tutorials/Python_introduction_to_signals_and_slots为此,在 python 中。
在 Qt 类中编码通常意味着创建对您有用的工作的插槽。请记住,您不想让事件循环持续太长时间,因此如果您这样做,请生成一个新线程。
您可以使用的第三个选项是分离其他线程。从线程中与 Qt 交互时要小心,如果这样做,则必须使用信号和槽。将线程实现为在这个SO中建议 https://stackoverflow.com/questions/2846653/python-multithreading-for-dummies.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)