aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/QtCore/qmetaobject_test.py
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-10-31 13:30:16 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-11-01 16:52:29 +0100
commit824937e586aae2337980f382ac1bb298b10ea6d9 (patch)
tree18dd77c21477e724f9fdedf4eff918ee6acb5fd9 /sources/pyside6/tests/QtCore/qmetaobject_test.py
parentdfbf935717996dd22e0dcf48f199492bf0935a1f (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.py21
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)