如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
来源:互联网 发布:原油分析软件哪个好 编辑:程序博客网 时间:2024/05/23 18:31
用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局。
但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置。
在处理子窗口鼠标事件时变的很麻烦。主窗口有菜单、工具条等,想用鼠标绘图,
把鼠标轨迹映射到窗口部件上,这些问题。
其实最主要的是获得窗口部件的起始点相对主窗口的位置。
例如:在主窗口拖入一个QScrollArea 在其上放一个QLabel用来显示鼠标事件。
可以在ui对象结构上看到如下结构。
大家知道,我们可以用pos()来获得某一窗口部件的起始点相对其父的位置。
那么,看结构可知,要获得scrollArea_2在主窗口(MainWindow)中的相对位置
即为:ui->scrollArea_2->pos()+ui->centralWidget->pos()
所以想获得窗口ScrollArea_2在主窗口中的相对位置区域为:
labelrect = QRect(ui->scrollArea_2->pos()+ui->centralWidget->pos(),
ui->scrollArea_2->size());
那么判断鼠标是否在此控件上只需在鼠标事件响应函数内写如下语句即可:
if(labelrect.contains(event->pos())) {……}
现在你可以在任意复杂的ui结构中确定某一子部件的位置了,但一定要注意:
父关系,即当前部件于其父部件的相对位置,其父部件与上层部件的相对位置,
直到与主窗口的相对位置。
阅读全文
0 0
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
- mfc判断鼠标位置是否在控件上
- 得到控件在窗口中的相对位置
- javascript:如何获得鼠标在屏幕上的位置
- win32 api 子控件在主窗口中的位置大小
- 获取控件在窗口上的相对位置以及修改背景色
- Qt 在可视窗口部件上绘图
- Qt 在可视窗口部件上绘图
- 在鼠标位置出现窗口
- 在windows程序设计中,主窗口上的控件与对话框上的控件的区别
- 如何获取鼠标在控件中位置
- 获得控件在对话框中的位置
- 在WebBrowser控件中获取鼠标在网页上点击的位置
- android中获取控件在屏幕和窗口的位置。
- 如何在iframe上定位鼠标位置
- 元素在窗口中的位置
- 优秀编程技术公众号推荐
- Hibernate的实体对应关系总结
- springmvc请求参数获取的几种方法
- PyCharm使用技巧:Structure(列出代码结构)
- 匿名类和匿名内部类
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
- PyCharm使用技巧:Find Action(查找并跳转到设置界面)
- [TetraMAX]set_delay -launch_cycle last_shift 的含义
- HDU
- 法规数字分类
- <QT>常见错误总结
- Codeforces Round 23
- sofia-sip下载地址
- 记忆化搜索 哈工大1865