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
connectSlotsByNamefor the parent-child issues withQWidget, but if you really want it, you have all the metadata available inQMetaObject, so you can write a function that works likeconnectSlotsByNameon any pair/set ofQObjects.