首页| 论坛| 消息

标题:如何为QApplication对象安装事件过滤器
作者:feixiangxtu
日期:2011-05-25 16:00
内容:

如题!
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.installEventFilter(QObject *); QObject *????
.......
}


#1 [dbzhang800 05-25 16:27]
引用楼主feixiangxtu于2011-05-25 16:00发表的 如何为QApplication对象安装事件过滤器 :
如题!
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
.......
QApplication 也是QObject的派生类,只要你知道如何给其他QObject的派生类对象安装过滤器,就应该知道如何做了。
#2 [bloodenjoy 05-25 17:39]
不知道你为什么要为一个QApplication对象安装事件过滤器
一般的方法是是在他的构造函数里面添加 参数给this
如果在外面的话可能给QApplication对象
另外你添加这个后还要实作他的bool eventFilter(QObject *obj, QEvent *event);函数在这里处理消息事件
bool Dialog::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::Paint)
{
QPaintEvent *paintEvent = static_cast(event);
///
其他代码

else

return QObject::eventFilter(obj, event);

return true;

我也刚学qt 不知道这些对你有用么
#3 [ingenious 01-07 12:42]
#include
#include "mainwindow.h"
#include
#include
#include

//先写一个类,命名为MyObeject 继承与QObjectclass
myObject:public QObject
{
public:
bool eventFilter (QObject *obj, QEvent *event) //重新实现此虚函数
{
if(event->type()==QEvent::KeyPress)
{
QKeyEvent *key=static_cast(event);//将QEvent类型转变为子类QKeyEvent类型,才能使用子类的key()函数
if(key->key()==Qt::Key_F1[/ ..
#4 [ewrest 05-06 15:08]
谢谢 很有帮助

回复 发表
主题 版块