qt 关于mapToGlobal获取坐标 出现一个非常奇怪问题

振星 2013-12-04 04:47:17
因为控件可能被包含于某个控件之间,想获取该控件与整个界面原点的坐标,于是想到了mapToGlobal。

但是问题就出现了.

程序如下:

Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
qDebug()<<ui->lineEdit->mapToGlobal(QPoint(0, 0))<<"???????????????";
}



void Dialog::on_pushButton_clicked()
{
qDebug()<<ui->lineEdit->mapToGlobal(QPoint(0, 0))<<"???????????????";
}


在初始化过程中 获取的lineEdit的坐标是 QPoint(590,240) 这个是符合要求从界面原点获取的坐标

但是点击按钮后 一样的程序,获取lineEdit的坐标却是QPoint(977,440) 这个却是从整个屏幕获取到的坐标。

请问 我如果希望点击按钮能够获取到正常的坐标,也就是从整个界面原点到控件的坐标,应该怎么处理?
如果是直接使用ui->lineEdit->pos();获取的是相对父节点的坐标,不符合要求。

在线等,谢谢
...全文
1774 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Trump_zhai 2013-12-04
  • 打赏
  • 举报
回复
你打印一下QDialog的pos就明白了
frostzerg 2013-12-04
  • 打赏
  • 举报
回复 3
因为Dialog构造的时候窗口还没有显示出来

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧