获取 QToolbar 的当前停靠区域的简单方法



我正在做一个Qt项目,我需要在运行时获取工具栏位置。有没有办法在QMainWindow内获取QToolbar的当前定位?

谢谢。

编辑:

感谢您的回答,我得到了 75% 的工作。但是QMainWindow::toolBarArea(QToolBar * toolbar)存在问题.

当我将两个工具栏停靠在一个区域(即底部区域)中时,如下所示。

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

然后我保存从QMainWindow::toolBarArea获得的区域,使用 QSettings 然后将它们加载回来,它加载如下。

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

有什么办法可以阻止吗?

QMainWindow 的范围内,可以调用 QMainWindow::toolBarArea(QToolBar *toolbar) 来获取工具栏位置。

返回工具栏的 Qt::工具栏区域。如果尚未添加工具栏 到主窗口,此函数返回 Qt::NoToolBarArea。

它返回enum

enum ToolBarArea {
        LeftToolBarArea = 0x1,
        RightToolBarArea = 0x2,
        TopToolBarArea = 0x4,
        BottomToolBarArea = 0x8,
        ToolBarArea_Mask = 0xf,
        AllToolBarAreas = ToolBarArea_Mask,
        NoToolBarArea = 0
    };

最新更新