2015-04-20 32 views
0

我正在開發一個Qt項目,我需要在運行時獲取工具欄位置。有沒有什麼辦法可以讓QToolbarQMainWindow的當前定位?獲取QToolbar當前停靠區域的簡單方法

謝謝。

編輯:

感謝您的回答,我得到了75%的工作。但是在QMainWindow::toolBarArea(QToolBar * toolbar)有一個問題。

當我將兩個工具欄放置在單個區域(即底部區域)時,如下所示。

----------------------------------- 
| Toolbar 1      | 
----------------------------------- 
| Toolbar 2      | 
----------------------------------- 

然後我保存從QMainWindow::toolBarArea獲得的區域,使用QSettings然後加載回,它加載如下。

----------------------------------- 
| Toolbar 1  | Toolbar 2  | 
----------------------------------- 

有沒有什麼辦法可以阻止呢?

+0

對不起,我錯了。我需要獲取工具欄的位置。 –

回答

1

QMainWindow的範圍內,您可以撥打QMainWindow::toolBarArea(QToolBar *toolbar)來獲取工具欄位置。

返回工具欄的Qt :: ToolBarArea。如果工具欄沒有被添加到主窗口 ,該函數返回Qt :: NoToolBarArea。

它返回enum

enum ToolBarArea { 
     LeftToolBarArea = 0x1, 
     RightToolBarArea = 0x2, 
     TopToolBarArea = 0x4, 
     BottomToolBarArea = 0x8, 

     ToolBarArea_Mask = 0xf, 
     AllToolBarAreas = ToolBarArea_Mask, 
     NoToolBarArea = 0 
    }; 
+0

謝謝。我無法在API中找到它。傻我:) –

+0

還有一個問題。當有兩個工具欄停靠在同一個區域中時,但是作爲一個堆棧(例如,在頂部區域中是兩行)時,如何才能在某個區域內獲得該位置? –

+0

@PraneethNilangaPeiris更具體請嗎?我不確定有什麼問題。您可以將目標工具欄傳遞給該函數並返回工具欄所在的區域。否則,如果你想要精確的座標,你可以調用'QToolBar :: geometry'來獲取它(如'QRect')。 – Tay2510

相關問題