diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-10-31 13:30:16 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-11-01 16:52:29 +0100 |
commit | 824937e586aae2337980f382ac1bb298b10ea6d9 (patch) | |
tree | 18dd77c21477e724f9fdedf4eff918ee6acb5fd9 /sources/pyside6/tests/QtCore/qmetaobject_test.py | |
parent | dfbf935717996dd22e0dcf48f199492bf0935a1f (diff) |
Add QMetaMethod::invoke()
[ChangeLog][PySide6] QMetaMethod.invoke() has been added.
Pick-to: 6.6
Fixes: PYSIDE-2500
Change-Id: I270489ec9372ddfee19e9342c1312d8c446ee5d9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/tests/QtCore/qmetaobject_test.py')
-rw-r--r-- | sources/pyside6/tests/QtCore/qmetaobject_test.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sources/pyside6/tests/QtCore/qmetaobject_test.py b/sources/pyside6/tests/QtCore/qmetaobject_test.py index 981b2a160..8f6467a07 100644 --- a/sources/pyside6/tests/QtCore/qmetaobject_test.py +++ b/sources/pyside6/tests/QtCore/qmetaobject_test.py @@ -143,6 +143,17 @@ class qmetaobject_test(unittest.TestCase): Q_ARG(int, 2), Q_ARG(int, 3)) self.assertEqual(sum, 5) + # Same with QMetaMethod + mo = tester.metaObject() + method = mo.method(mo.indexOfMethod("add(int,int)")) + self.assertTrue(method.isValid()) + sum = method.invoke(tester, Qt.ConnectionType.AutoConnection, + Q_RETURN_ARG(int), Q_ARG(int, 2), Q_ARG(int, 3)) + self.assertEqual(sum, 5) + sum = method.invoke(tester, Q_RETURN_ARG(int), Q_ARG(int, 2), + Q_ARG(int, 3)) + self.assertEqual(sum, 5) + concatenated = QMetaObject.invokeMethod(tester, "concatenate", Q_RETURN_ARG(str), Q_ARG(str, "bla"), @@ -190,6 +201,16 @@ class qmetaobject_test(unittest.TestCase): Q_ARG("QVariant", "bla")) self.assertEqual(model.data(index), "bla") + # Same with QMetaMethod + mo = model.metaObject() + method = mo.method(mo.indexOfMethod("setData(QModelIndex,QVariant)")) + self.assertTrue(method.isValid()) + method.invoke(model, Qt.ConnectionType.AutoConnection, + Q_ARG(QModelIndex, index), Q_ARG("QVariant", "blub")) + self.assertEqual(model.data(index), "blub") + method.invoke(model, Q_ARG(QModelIndex, index), Q_ARG("QVariant", "blip")) + self.assertEqual(model.data(index), "blip") + def test_QMetaMethod(self): o = QObject() m = QMetaMethod.fromSignal(o.destroyed) |