2013-03-19 73 views
1

我想为我的Qt应用程序添加一个帮助网页。用户可以使用Qt :: WhatsThis的“工具提示”对该主题和网页的URL进行解释。我使用Qt Designer编辑WhatsthisTooltips,并让它独立于语言。QEventfilter类的全球事件捕获

现在我创建一个用于过滤的“LinkFilter”类,将它安装在viewclass中并对QEvent :: WhatsThisClicked事件作出反应。这工作正常。

现在,我会捕获每个QEvent :: WhatsThisClicked在我的应用程序,但我看起来真的很乱,以安装在真正的每个对话框/视图/动作/部件。这里有一些全局的eventHandler,我可以安装我的“LinkEvent”类吗?必须有一个很好的Qt风格的方式来解决这个问题。

对于安装EventFilter我强烈地跟着这个视频教程http://youtu.be/DHgbYxpZkbg

回答

2

http://qt-project.org/doc/qt-4.8/qapplication.html#notify

基本上你需要继承QApplication和覆盖此功能。然后,您可以检查它是否是您要查找的事件的类型并据此采取行动。

+0

QApplication类的提示非常好。我可以在应用程序类中轻松安装事件。现在它捕捉每一个信号而不改变“正常”行为。 QApplication qApplication(argc,argv); LinkFilter * filter = new LinkFilter(this); qApplication.installEventFilter(filter); – norca 2013-03-20 09:34:01