加载中…
正文 字体大小:

回复:继承wheelEvent(QWheelEvent*e),无反应!!!

(2012-07-27 14:13:56)
标签:

it

qt

c

分类: Qt

原始问题:

写了个Lineedit类,继承QLineEdit
在Lineedit中继承了QWidget 的wheelEvent(QWheelEvent*),编译出来没啥反应
代码如下:

lineedit.cpp

  1. #include "form1.h"
  2. LineEdit::LineEdit(QWidget * parent, const char * name):QLineEdit(parent,name)
  3. {
  4. this->setFocusPolicy(QWidget::WheelFocus);
  5. }
  6. void LineEdit::wheelEvent ( QWheelEvent *e )
  7. {
  8. printf("wheelEvent\n");
  9. if(e->delta()>0)
  10. { printf("Wheel : >0!\n"); }
  11. else if(e->delta()<0)
  12. { printf("Wheel : <0!\n"); }
  13. else
  14. { printf("Wheel : =0!\n"); }
  15. e->accept();
  16. }
  17. void LineEdit::enterEvent(QEvent *e)
  18. {
  19. printf("EnterEvent!\n");
  20. QWidget::enterEvent(e);
  21. }
  22. LineEdit::~LineEdit()
  23. {
  24. }


里头顺便继承了个enterEvent(QEvent *e),屏幕上能顺利打出enterEvent(QEvent *e)中的“EnterEvent!”
但是对于wheelEvent ( QWheelEvent *e ),再怎么滑动鼠标滑轮都没得啥反应!!!
到底哪儿出问题???

 

回复:

我也遇到同样的问题,QWheelEvent事件不能响应,滑动鼠标不触发。

后来把代码改了改:

void LineEdit::enterEvent(QEvent *event)
{
    QEvent::Type type = event->type();

    //
触发滑轮事件
    if (type == QEvent::Wheel)
    {
        wheelEvent ((QWheelEvent*)event);
    }

}

问题是解决了,但是具体QWheelEvent为什么不响应,还是不太清楚

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有