2012-07-21 86 views
4

我有一个网格布局的主窗口,并有8个按钮在2行。qt小工具位置

--------------------- 
|      | 
| 1  2  3  4 | 
|      | 
|      | 
| 5  6  7  8 | 
|      | 
--------------------- 

我试图显示一个弹出对话框旁边的按钮被点击。所以,我试图获得连接到clicked()信号的插槽中按钮的坐标。

我已经试过

QPoint p = btn->pos(); 

QPoint p = btn->geometry().topLeft(); 

无一不是(0,0),出于某种原因。我如何获得在此插槽中点击的按钮的位置?

谢谢

回答

5

我想你需要映射按钮的位置相对于父窗口。

QWidget::mapTo

平移插件坐标POS到 母体的坐标系。父级不得为0,并且必须是调用的 小部件的父级。