2015-04-20 29 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

相关问题