• 9831阅读
  • 5回复

[提问]QWidget不能响应鼠标事件? [复制链接]

上一主题 下一主题
离线liuhong13554
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-04
继承的是一个QWidget的类,生成一个窗口!创建了一个按钮点击之后会new一个新的窗口。也是继承一个QWidget类,两个窗口都用了鼠标点击释放和双击事件!为什么新new出来的一个类不能响应鼠标释放事件和双击事件呢?但是可以响应鼠标左键单击事件????为什么呢?是不是两个窗口会冲突!求解啊
离线淳于半邪

只看该作者 1楼 发表于: 2012-04-05
没遇到过类似情况,你可以试试,在new的widget里面写鼠标释放事件和双击事件,accept就行了;打断电试试看执行了没(ps:试试不知道行不行)
离线liuhong13554
只看该作者 2楼 发表于: 2012-04-05
请问怎么个accept呢?我是新手!我两个类都是继承了QWidget,就是main里面new的那个都可以响应。但是后面new的那个只能响应鼠标单击!双击和释放却不能响应?响应时在QGraphicsView视图框架的场景里面?请问有区别吗?我在做图片浏览器,用的图形视图框架!真心求解!3Q
离线wk5882846

只看该作者 3楼 发表于: 2012-04-05
鼠标事件的接收是有先后顺序的...
例如如果你的QGraphicsItem和QMainWindow都有鼠标事件的话
QGraphicsItem在上层,先接收,要是接收了,下层的就不会响应了
解决的办法是:
     例如这里我们想让上层直接跳过,下层接收。那么就在上层的类中加一个bool变量,并在重写鼠标事件的虚函数时用:
     if(bool==true)
          {    你想响应的内容; }
         else{  event ->ignore(); }
    这样就可以控制什么时候接收,什么时候不接收了。


当然还有设置事件过滤器的方法,一般书上讲鼠标事件的时候都有
asd
离线dxfans

只看该作者 4楼 发表于: 2012-04-05
回 3楼(wk5882846) 的帖子
楼主是子窗口没消息,不是父窗口没消息
离线dxfans

只看该作者 5楼 发表于: 2012-04-05
放源码下载吧。。。。否则大家都是空想。。。
快速回复
限100 字节
 
上一个 下一个