2012-07-21 83 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,並且必須是調用的 小部件的父級。