qt 关于mapToGlobal获取坐标 出现一个非常奇怪问题
因为控件可能被包含于某个控件之间,想获取该控件与整个界面原点的坐标,于是想到了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();获取的是相对父节点的坐标,不符合要求。
在线等,谢谢
[解决办法]
因为Dialog构造的时候窗口还没有显示出来
[解决办法]
你打印一下QDialog的pos就明白了