代码如下:
void TestWidget::on_pushButton123_clicked()
{
QPoint p = ui.pushButton123->pos();//获得pushButton123在父窗口(frame_2)中的相对坐标,值为[10,10]
QPoint pos1 = ui.frame_2->mapTo(this, ui.pushButton123->pos());//将父窗口(frame_2)中的按钮坐标,转换成当前窗口(TestWidget)的坐标,值为[40,120]
QPoint pos1_1 = ui.pushButton123->mapTo(this, ui.pushButton123->pos());//错误方法,值为[50,130]
QPoint pos2 = ui.frame_2->mapToParent(ui.pushButton123->pos());//错误方法,值为[40,120]
QPoint pos2_1 = ui.pushButton123->mapToParent(ui.pushButton123->pos());//错误方法,值为[20,20]
QPoint pos3 = ui.frame_2->mapToGlobal(ui.pushButton123->pos());//错误方法,值为[300,333]
QPoint pos3_1 = ui.pushButton123->mapToGlobal(ui.pushButton123->pos());//错误方法,值为[310,343]
}