QMetaObject.invokeMethod(self.func, Qt.QueuedConnection) TypeError: arguments did not match any overloaded call: invokeMethod(QObject, str, Qt.ConnectionType, QGenericReturnArgument, value0: QGenericArgument = QGenericArgument(0,0), value1: QGenericArgument = QGenericArgument(0,0), value2: QGenericArgument = QGenericArgument(0,0), value3: QGenericArgument = QGenericA rgument(0,0), value4: QGenericArgument = QGenericArgument(0,0), value5: QGenericArgument = QGenericArgument(0,0), value6: QGeneri cArgument = QGenericArgument(0,0), value7: QGenericArgument = QGenericArgument(0,0), value8: QGenericArgument = QGenericArgument( 0,0), value9: QGenericArgument = QGenericArgument(0,0)): argument 1 has unexpected type 'function' invokeMethod(QObject, str, QGenericReturnArgument, value0: QGenericArgument = QGenericArgument(0,0), value1: QGenericArgument = QGenericArgument(0,0), value2: QGenericArgument = QGenericArgument(0,0), value3: QGenericArgument = QGenericArgument(0,0), value 4: QGenericArgument = QGenericArgument(0,0), value5: QGenericArgument = QGenericArgument(0,0), value6: QGenericArgument = QGeneri cArgument(0,0), value7: QGenericArgument = QGenericArgument(0,0), value8: QGenericArgument = QGenericArgument(0,0), value9: QGene ricArgument = QGenericArgument(0,0)): argument 1 has unexpected type 'function' invokeMethod(QObject, str, Qt.ConnectionType, value0: QGenericArgument = QGenericArgument(0,0), value1: QGenericArgument = QGen ericArgument(0,0), value2: QGenericArgument = QGenericArgument(0,0), value3: QGenericArgument = QGenericArgument(0,0), value4: QG enericArgument = QGenericArgument(0,0), value5: QGenericArgument = QGenericArgument(0,0), value6: QGenericArgument = QGenericArgu ment(0,0), value7: QGenericArgument = QGenericArgument(0,0), value8: QGenericArgument = QGenericArgument(0,0), value9: QGenericAr gument = QGenericArgument(0,0)): argument 1 has unexpected type 'function' invokeMethod(QObject, str, value0: QGenericArgument = QGenericArgument(0,0), value1: QGenericArgument = QGenericArgument(0,0), value2: QGenericArgument = QGenericArgument(0,0), value3: QGenericArgument = QGenericArgument(0,0), value4: QGenericArgument = QG enericArgument(0,0), value5: QGenericArgument = QGenericArgument(0,0), value6: QGenericArgument = QGenericArgument(0,0), value7: QGenericArgument = QGenericArgument(0,0), value8: QGenericArgument = QGenericArgument(0,0), value9: QGenericArgument = QGenericAr gument(0,0)): argument 1 has unexpected type 'function'这个报警怎么解决?
时间: 2024-03-27 08:41:32 浏览: 465
这个报错是因为你传递给 QMetaObject.invokeMethod() 的第一个参数是一个函数对象,而它期望的是一个 QObject 对象。你需要将这个函数封装到一个 QObject 对象中,然后再将这个 QObject 对象传递给 QMetaObject.invokeMethod()。例如,你可以这样做:
```python
class FunctionWrapper(QObject):
def __init__(self, func):
super().__init__()
self.func = func
def call(self):
self.func()
func = lambda: print("Hello, world!")
wrapper = FunctionWrapper(func)
QMetaObject.invokeMethod(wrapper, "call", Qt.QueuedConnection)
```
这里,我们创建了一个叫做 FunctionWrapper 的 QObject 子类,它将一个函数封装在了一个名为 call 的方法中。然后,我们将这个封装后的函数对象传递给了 QMetaObject.invokeMethod()。
阅读全文