• 4386阅读
  • 5回复

关于事件过虑的技术问题请大侠帮忙,急急急! [复制链接]

上一主题 下一主题
离线wy200507030
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-04
       各位大哥大姐,我用A类继承了QMainwindow类,B继承了Qwidget类,将B设置为A的centralwidget,在B中有一个QDialog成员C,后点击A的界面弹出C对话框,我想在C中的QLineEdit框中显示从A的界面上获得的鼠标移动的坐标点的值,其随着鼠标不断移动QLineEdit框中值不断改变,为实现此功能我用了事件监控,用C来监控B,C的eventFilter()方法可以收到点击图标产生对话框的事件但弹出此对话框后,B的窗体便处于非激活状态,这样即使怎样在B的窗体上移动鼠标,均产生不了发向B的鼠标移动信息,这样c的eventFilter()方法也捕捉不了,功能无法实现,请问怎样解决此问题,望各位大侠帮忙!!!!  
    其实也就是在对话框C为模态时,怎样让处于非激活状态的B,鼠标在B窗口范围移动时还能产生发向B的鼠标移动事件?
离线午小夜

只看该作者 1楼 发表于: 2010-03-04
用信號把鼠標坐標值傳給B。將B的槽和C的槽綁定。C的槽控制lineEdit -> setText();
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线wy200507030
只看该作者 2楼 发表于: 2010-03-04
版主你好,当我弹出模态的C后,我是用鼠标移动得到的屏幕坐标,在mouseEvent中得到,curpos = mouseEvent->pos(),此时鼠标只有在对话框范围移动时才可抓取到坐标,出了此范围便得不到鼠标,怎样得到该范围外的鼠标坐标?我需要的是以B界面左上角点为0,0这样的鼠标坐标值点,请版主明示?
离线午小夜

只看该作者 3楼 发表于: 2010-03-04
mouseEvent 要在A中重新實現,而且記得要 A::setMouseTracking(true);
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线wy200507030
只看该作者 4楼 发表于: 2010-03-04
版主,你的意思也就是说,在c范围之外的鼠标移动事件,在A的mouseEvent中能够捕获,用信号将A中捕获的屏幕坐标值传给B?
离线wy200507030
只看该作者 5楼 发表于: 2010-03-04
版主,刚才试过了,在C出现后,在C的范围外移动鼠标A也捕获不了,只有在C关闭后,或没有弹出来之前A可以捕获。我B,A的mouseEvent 都實現了,而且都设置了setMouseTracking(true)
快速回复
限100 字节
 
上一个 下一个