aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-04-05 17:09:01 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-04-22 10:03:29 +0200
commit89eedc41f6e81d06693a9326e5eadfc91de026bb (patch)
tree105b8a2ef72ffca02e38a926c8ed0fe2f736832a /sources/pyside6
parente0997a8ccacc00916fa5c07419b434a923d94e5f (diff)
PySide6: Handle not finding a slot by name
Change-Id: Ie2c652223aaaa853c99d540acebb99f754f34d61 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 4b763b54737b0da8f10cfed245637310d4cd80c7) Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6')
-rw-r--r--sources/pyside6/libpyside/signalmanager.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp
index a3b1ff9b4..67302beab 100644
--- a/sources/pyside6/libpyside/signalmanager.cpp
+++ b/sources/pyside6/libpyside/signalmanager.cpp
@@ -439,7 +439,12 @@ int SignalManager::SignalManagerPrivate::qtMethodMetacall(QObject *object,
QByteArray methodName = method.methodSignature();
methodName.truncate(methodName.indexOf('('));
Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(pySelf, methodName));
- SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
+ if (pyMethod.isNull()) {
+ PyErr_Format(PyExc_AttributeError, "Slot '%s::%s' not found.",
+ metaObject->className(), method.methodSignature().constData());
+ } else {
+ SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
+ }
}
// WARNING Isn't safe to call any metaObject and/or object methods beyond this point
// because the object can be deleted inside the called slot.