Qt如何通过pos()获取坐标信息

 更新时间:2024年01月05日 11:32:10   作者:lpl轻舟已过万重山  
这篇文章主要给大家介绍了关于Qt如何通过pos()获取坐标信息的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用qt具有一定的参考借鉴价值,需要的朋友可以参考下

背景:这是一个QWidget窗体,里面是各种布局的组合,一层套一层。

我希望得到绿色部分的坐标信息(x,y)

QPoint get_pos(QWidget* w, QWidget* parent)
{
	if ((QWidget*)w->parent() == parent) {
		return w->pos();
	}
	else {
		QPoint pos(w->pos());
		pos += get_pos((QWidget*)w->parent(), parent);
		return pos;
	}
}

假设

绿色窗体为w

最外面的窗体为m

get_pos(w,m);

附:在实现一个可以自由拖动位置的widget时

void ShadowWidget::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton && !mouse_press) {
        mouse_press = true;
    }

    //窗口移动距离
    orig_point = event->globalPos();
    orig_pos = pos() ;
}

void ShadowWidget::mouseReleaseEvent(QMouseEvent *)
{
    if (mouse_press) {
        mouse_press = false;
    }
}

void ShadowWidget::mouseMoveEvent(QMouseEvent *event)
{
    //移动窗口
    if (mouse_press) {
        QPoint move_point = event->globalPos();
        move(move_point - orig_point  + orig_pos );  
        /*move是相对于桌面系统来移动widget,所以是相对于移动前
        widget在桌面系统的位置上来进行的,
        所以要加上orig_pos*/
    }
}

在坐标位置变换时注意下不同坐标系的坐标轴原点差异,就能灵活应对了。

总结 

到此这篇关于Qt如何通过pos()获取坐标信息的文章就介绍到这了,更多相关Qt pos()获取坐标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • strcat 函数的使用指南

    strcat 函数的使用指南

    strcat是连接字符串的函数。函数返回指针,两个参数都是指针,第一个参数所指向的内存的地址必须能容纳两个字符串连接后的大小。
    2015-09-09
  • C++超详细讲解函数重载

    C++超详细讲解函数重载

    C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading),借助重载,一个函数名可以有多种用途
    2022-05-05
  • c++打印封装每次打印前面加上时间戳问题

    c++打印封装每次打印前面加上时间戳问题

    这篇文章主要介绍了c++打印封装每次打印前面加上时间戳问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 深入解析C++程序中激发事件和COM中的事件处理

    深入解析C++程序中激发事件和COM中的事件处理

    这篇文章主要介绍了深入解析C++程序中激发事件和COM中的事件处理,是C++事件操作的基础,需要的朋友可以参考下
    2016-01-01
  • 带你粗略了解c++的最大乘积

    带你粗略了解c++的最大乘积

    这篇文章主要为大家详细介绍了C++的最大乘积,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08
  • C语言结构体超详细讲解

    C语言结构体超详细讲解

    C语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型
    2022-04-04
  • 浅谈VC中预编译的头文件放那里的问题分析

    浅谈VC中预编译的头文件放那里的问题分析

    本篇文章是对VC中预编译的头文件放那里的问题进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C/C++实现字符串模糊匹配

    C/C++实现字符串模糊匹配

    本文分别给大家介绍了2个C++在Linux平台和windows平台下实现字符串模糊匹配的方法,基本的核心思想都是一样的,均是使用fnmatch函数,有需要的小伙伴可以参考下。
    2016-04-04
  • 基于Opencv实现双目摄像头拍照程序

    基于Opencv实现双目摄像头拍照程序

    这篇文章主要为大家详细介绍了基于Opencv实现双目摄像头拍照程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • C语言数据结构之图书借阅系统

    C语言数据结构之图书借阅系统

    这篇文章主要为大家详细介绍了C语言数据结构之图书借阅系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论