几个线程的pyqt4 gui

时间:2015-11-27 21:11:49

标签: multithreading user-interface pyqt4 qtgui qtcore

基本上我想创建一个qtabwidget并在另一个线程中启动其中的每个小部件。到目前为止,我试图发出不起作用的小部件,因为插槽不支持Qwidget。然而,我可以在主线程中启动一个widget类,我调用一个线程,该线程调用另一个绘制QWidget的类。这是有效的,但只要我将鼠标移动到线程中调用的窗口我就会得到

QApplication: Object event filter cannot be in a different thread. 

所以可能不应该这样做

#!/usr/bin/env python

from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtCore import QThread, SIGNAL
import sys
class seconwidget(QtGui.QWidget):

    def showit(self, toshow):
        toshow.show()
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setGeometry(300,300,400,400)
        self.setWindowTitle("tryit")
        self.show()
class seconddialog(QThread):
    def __init__(self):
       QThread.__init__(self)

    def run(self):
        self.newwid=seconwidget()

class mainwindow(QtGui.QWidget):

    def showit(self, toshow):
        toshow.show()
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.setGeometry(300,300,400,400)
        self.setWindowTitle("try")
        self.show()
        self.show_thread=seconddialog()
        self.show_thread.start()

if __name__=='__main__':
    app=QtGui.QApplication(sys.argv)
    wind=mainwindow()
    app.exec_()

可以做到,做正确的方法是什么?

0 个答案:

没有答案