Qt库,子类窗口拦截消息?

时间:2010-12-29 23:56:44

标签: c++ visual-studio-2008 qt

我是第一次与Qt库合作。我想知道是否有一种子类化Qt小部件的方法,以便您可以拦截传递给该小部件的所有消息,它可能与Windows但我不知道如何做,或者如果Qt可能?还有其他选择吗?

有问题的QWidget是Chat类型,类型为QList。如何使用QWidget库拦截添加到List的任何内容,这是一个小部件?

感谢。

1 个答案:

答案 0 :(得分:1)

取决于您对邮件的意思。如果你的意思是:

1 - 事件,我相信有一个你可以覆盖的事件处理程序,它最终负责将这些事件传递给特定的处理函数。

2 - 信号,我还没有尝试过,但可能可以覆盖qt_metacall以完全非标准的方式运行。你必须找到一种方法将虚无**转变为有意义的东西,而且如果不确切知道你的回应是什么,那就非常严厉。有一个'id'参数告诉MOC生成的函数该做什么,然后其余的是switch和reinterpret_casts。

3 - 面向对象意义上的“消息”,其中对“方法”的任何调用都是“消息”。对不起,C ++不会这样工作。如果你想要这种行为,你需要像Java或Objective-C这样的东西。