使用QThread的PyQt4多线程
|
在
QThread
中调用xml.etree.ElementTree.fromstring()
函数时,会出现无限循环。同样,许多其他调用也使QThread像multiprocessing.Process()
一样被阻塞。
重要的是要说它是一个纯块,没有例外或中断。
这是代码(经过少许编辑,但原理与源代码相同):
from PyQt4.QtGui import *
from Ui_mainwindow import Ui_MainWindow
import sys
import xml.etree
class Bruton(QThread):
def __init__(self, mw):
super(Bruton, self).__init__(mw)
self.mw = mw
def run(self):
print(\"This message I see.\")
tree = xml.etree.ElementTree.fromstring(\"<element>text</element>\")
print(\"But this one never.\")
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.init_bruton()
# When the form is shown...
def showEvent(self, arg1):
self.bruton.start()
def init_bruton(self):
self.bruton = Bruton(self)
app = QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
没有找到相关结果
已邀请:
2 个回复
驮帽俺篮号
这是输出:
这是在Debian Unstable上的Python 2.6.6,PyQt4 4.8.3中使用的。 您可以在您的环境中尝试一下,看看我的修改后的示例是否适合您?如果是这样,那么您正在为您的真实代码提供解决方案。 =)
醒荒捆府绣
)。我注意到主模块必须是启动ѭ7的模块。因此,我在程序的主要模块ѭ9中添加了
。