5

我有一个带有网格布局的主窗口,并且有 2 行中有 8 个按钮。

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

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

我试过了

QPoint p = btn->pos();

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

由于某种原因,两者都是 (0, 0) 。如何获取在此插槽中单击的按钮的位置?

谢谢

4

1 回答 1

8

我认为您需要映射按钮相对于父窗口的位置。

QWidget::mapTo

将小部件坐标 pos 转换为父坐标系。父级不能为 0,并且必须是调用小部件的父级。

于 2012-07-21T18:21:10.260 回答