My main application object is a QObject
, that juggles a QSystemTrayIcon
, a QDialog
, a QWindow
and a few other components. The app mostly sits in the tray, with some options dialogs etc etc.
Now, I'd like to use QMetaObject::connectSlotsByName()
to connect signals from these objects to slots in the main object. It's 10-15 of them, so writing them by hand doesn't seem efficient, right, professional, modern, etc etc.
However, I can't use my QObject
as parent to the QWidget
based objects, nor can I change the object to inherit QWidget
, as they will not show up, since the main object isn't visible.
Ideas?
Connecting signals to slots manually is perfectly fine. Qt itself is doing that, most Qt applications are doing that.
I'm afraid you can't use connectSlotsByName
for the parent-child issues with QWidget
, but if you really want it, you have all the metadata available in QMetaObject
, so you can write a function that works like connectSlotsByName
on any pair/set of QObject
s.