【问题标题】:qt widget positionqt 小部件位置
【发布时间】:2012-07-21 18:03:13
【问题描述】:

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

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

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

我试过了

QPoint p = btn->pos();

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

出于某种原因,两者都是 (0, 0)。如何获取在该槽中被点击的按钮的位置?

谢谢

【问题讨论】:

    标签: c++ qt position


    【解决方案1】:

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

    QWidget::mapTo

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

    【讨论】: