Multithreading 尝试从QThread向QTableWidget添加项可以工作,但引发错误

Multithreading 尝试从QThread向QTableWidget添加项可以工作,但引发错误,multithreading,python-3.x,pyqt5,Multithreading,Python 3.x,Pyqt5,我必须更新我的QTableWidget,但它有大量数据,所以我线程化更新它: self.vthread = visualThread(self.data_view, data) self.vthread.start() self.data\u view是一个QTableWidget,data是一个类对象,它有一些列表属性,我需要迭代并放入表中。这是线程: class visualThread(QThread): def __init__(self, view, data):

我必须更新我的QTableWidget,但它有大量数据,所以我线程化更新它:

self.vthread = visualThread(self.data_view, data)
self.vthread.start()
self.data\u view
是一个QTableWidget,
data
是一个类对象,它有一些列表属性,我需要迭代并放入表中。这是线程:

class visualThread(QThread):

    def __init__(self, view, data):
        QThread.__init__(self)
        self.view = view
        self.data= data

    def __del__(self):
        self.wait()

    def run(self):
        for y in range(len(self.data.axis[0])):
            for x in range(len(self.data.axis[0])):
                self.view.setItem(x, y, QTableWidgetItem(str(maintain_order_sort(self.data.data_array[x][y][::-1]))))
mainter\u order\u sort
只需重新组织字符串。 这是我的输出:

QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect:无法对类型为“QVector”的参数排队
(确保使用qRegisterMetaType()注册了“QVector”。)
QObject::connect:无法对类型为“QVector”的参数排队
(确保使用qRegisterMetaType()注册了“QVector”。)
QObject::connect:无法对类型为“QVector”的参数排队
(确保使用qRegisterMetaType()注册了“QVector”。)
QObject::connect:无法对类型为“QVector”的参数排队
(确保使用qRegisterMetaType()注册了“QVector”。)
QObject::connect:无法对类型为“QVector”的参数排队
(确保使用qRegisterMetaType()注册了“QVector”。)

我尝试过添加信号(我有另一个处理信号的线程,这是唯一的错误),我将错误定位到
setItem()
。TIA

Qt和PyQt的基本规则,除了主线程,GUI永远不会从其他线程修改,主线程称为GUI线程!!!!当我尝试这样做时,我的GUI变得没有响应。我的代码基本上与上面的代码相同,除了将数据发送到更新表的函数,而不是
setItem
,调用
QApplication.processEvents()
Go figure。最简单的解决方案是最简单的。谢谢。Qt和PyQt的基本规则,除了主线程,GUI永远不会从其他线程修改,主线程称为GUI线程!!!!当我尝试这样做时,我的GUI变得没有响应。我的代码基本上与上面的代码相同,除了将数据发送到更新表的函数,而不是
setItem
,调用
QApplication.processEvents()
Go figure。最简单的解决方案是最简单的。谢谢