是否可以将 QWidget 作为 QObject 的子级?

Mac*_*cke 5 qt signals-slots qwidget

我的主要应用程序对象是 a QObject,它处理 a QSystemTrayIcon、 a QDialog、 aQWindow和一些其他组件。该应用程序主要位于托盘中,带有一些选项对话框等。

现在,我想用来QMetaObject::connectSlotsByName()将这些对象的信号连接到主对象中的插槽。有10-15个,所以手写看起来不太高效、正确、专业、现代等等。

但是,我不能使用 myQObject作为QWidget基于对象的父对象,也不能将对象更改为继承QWidget,因为它们不会显示,因为主对象不可见。

有想法吗?

Luk*_*ský 2

手动将信号连接到插槽是完全没问题的。Qt 本身正在这样做,大多数 Qt 应用程序也在这样做。

恐怕您不能使用connectSlotsByName的父子问题QWidget,但如果您真的想要它,您可以在 中拥有所有可用的元数据,因此您可以编写一个像在任何对/集合上QMetaObject一样工作的函数。connectSlotsByNameQObject