.....
self.runBtn = QtWidgets.QPushButton(self.tab)
self.runBtn.clicked.connect(self.func2)
......
def func1(self, text):
self.tableWidget_2.setItem(row,
1
, QtWidgets.QTableWidgetItem(text))
def func2(self):
.....
.....
t = threading.Thread(target=executer.execute_func, args=(self.func1))
t.setDaemon(True)
t.start()
executer.py
def execute_func(dispFunc):
connect() #another thread
is
created
in
this
funcn
......
......
text =
"
Something"
dispFunc(row, text)
On clicking the run button, when the func1 is called for displaying the text in the table widget, I am getting this error message:
QObject::connect: Cannot queue arguments of type
'
QVector<int>'
(Make sure
'
QVector<int>'
is
registered
using
qRegisterMetaType().)
What I have tried:
class
MyThread(QThread):
change_value = pyqtSignal(
int
, str)
def run(self):
.....
def func2(self):
self.thread = MyThread()
self.thread.change_value.connect(self.func1)
self.thread.start()
Please help
Quote:
Make sure '
QVector<int>
' is registered using
qRegisterMetaType()
Try following the instructions in the error message.
QMetaType Class | Qt Core 5.15.2
[
^
]
Read the question carefully.
Understand that English isn't everyone's first language so be lenient of bad
spelling and grammar.
If a question is poorly phrased then either ask for clarification, ignore it, or
edit the question
and fix the problem. Insults are not welcome.
Don't tell someone to read the manual. Chances are they have and don't get it.
Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.