Qt从小部件获取信号槽连接信息

时间:2011-07-25 10:46:36

标签: qt signals-slots

我觉得使用当前的API是不可能的,但我不得不问。是否可以查询特定QObject的信号或插槽名称(来自metaObject)并检索所有连接到它的QObject及其插槽或信号名称?

我这样做是因为,实际上,我有大量的布局包含相同的小部件排列,每个布局都有一个对象,每个布局的小部件控制着它的各种属性。我想保留一个布局,并将它的小部件的信号/插槽连接到同一模式中的所有其他对象,但为了做到这一点,我需要'记录'所有信号槽数据。

有可能吗?

1 个答案:

答案 0 :(得分:2)

Qt中有一个有趣的文件 - %Qtdir%/src/corelib/kernel/qobject_p.h,它包含类QObjectPrivate,由Qt在内部使用。 使用 static QObjectPrivate *get(QObject *o)函数为您的小部件获取QObjectPrivate成员,并尝试调用其有趣的成员 QObjectList receiverList(const char *signal) const;QObjectList senderList() const;。文件完全没有记录,但它似乎包含你所需要的......