窗口栏组件

发布于:2025-02-10 ⋅ 阅读:(50) ⋅ 点赞:(0)

在Qt中,窗口的布局可以由多个常用的部件组成。你提供的代码涉及了菜单栏、工具栏、状态栏、中心部件和铆接部件(即停靠窗口)。下面是每个部件的详细解析:

1. 菜单栏 (QMenuBar)

Qt中的菜单栏用来创建应用程序的顶部菜单,通常只会有一个菜单栏,并且它可以包含多个菜单项。

QMenuBar *bar = new QMenuBar;
this->setMenuBar(bar);

// 创建一个菜单项
QMenu *firstMenu = bar->addMenu("菜单名");
// 添加活动项(即菜单项)
bar->addAction("活动名");
// 添加分隔线
bar->addSeparator();
// 创建二级菜单
QMenu *secondMenu = bar->addMenu("二级菜单");

QMenuBar 是菜单栏的容器,可以通过 addMenu() 方法添加菜单。
addAction() 用来添加菜单项。
addSeparator() 用于在菜单项之间添加分隔线。
setMenuBar() 将菜单栏添加到窗口中。

2. 工具栏 (QToolBar)

工具栏用于提供一系列常见的操作(如剪切、复制、粘贴等),通常显示在窗口的上方或者下方。

QToolBar *toolBar = new QToolBar;
this->addToolBar(toolBar);

// 设置工具栏的显示位置(左侧或右侧)
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
// 禁止工具栏浮动
toolBar->setFloatable(false);
// 禁止工具栏移动
toolBar->setMovable(false);

// 添加活动项
toolBar->addAction("活动名");
// 添加分隔线
toolBar->addSeparator();
// 添加控件(如按钮、输入框等)
toolBar->addWidget(组件名);

QToolBar 是工具栏的容器,可以通过 addAction() 添加操作项。
setAllowedAreas() 用于设置工具栏可显示的区域(上下左右)。
setFloatable() 禁止工具栏浮动(即不能脱离窗口移动)。
setMovable() 禁止工具栏被移动。
addWidget() 用于在工具栏中添加自定义控件。

3. 状态栏 (QStatusBar)

状态栏用于显示应用程序的状态信息,通常位于窗口的底部。

QStatusBar *stBar = new QStatusBar;
this->setStatusBar(stBar);

// 在左侧添加控件(如标签)
stBar->addWidget(组件);
// 在右侧添加永久控件
stBar->addPermanentWidget(组件);

QStatusBar 是状态栏的容器,可以通过 addWidget() 添加控件(如标签、进度条等)。
addPermanentWidget() 用于在状态栏的右侧固定显示控件,通常用于显示始终存在的信息,如应用状态。

4. 中心部件 (setCentralWidget)

中心部件是窗口中的主内容区域,通常用于显示应用程序的核心界面。

this->setCentralWidget(部件);

setCentralWidget() 设置窗口的中央部件,通常用于显示应用的主内容区域。

5. 铆接部件 (QDockWidget)

铆接部件用于将一个可拖动的窗口(如工具面板、文档窗格等)嵌入到主窗口。它可以浮动并停靠到窗口的任意区域。

QDockWidget *dw = new QDockWidget("标题", this);
this->addDockWidget(Qt::LeftDockWidgetArea, dw);

// 设置允许停靠的位置
dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

QDockWidget 创建一个可停靠的部件,通常用于显示附加的窗口或工具。
addDockWidget() 用于将停靠部件添加到主窗口,可以指定它停靠的位置(例如:左侧或右侧)。
setAllowedAreas() 用于指定停靠区域,Qt::LeftDockWidgetAreaQt::RightDockWidgetArea 表示该部件可以停靠在窗口的左边或右边。

总结

Qt的常见部件包括:

  • 菜单栏 (QMenuBar):用于创建和管理顶部的菜单。
  • 工具栏 (QToolBar):用于创建快捷操作栏,可以显示在窗口顶部、底部或左右。
  • 状态栏 (QStatusBar):用于显示应用程序状态信息,通常位于窗口底部。
  • 中心部件 (setCentralWidget):主窗口的核心内容区域,用于展示应用程序的主要界面。
  • 铆接部件 (QDockWidget):可停靠的窗口,可以拖动并附加到主窗口的任意区域。

我总结的快速查找代码:

#include <QMenuBar>
#include <QMenu>

// 菜单栏(菜单栏最多只能有一个)
QMenuBar *bar = new QMenuBar;
this->setMenuBar(bar);

QMenu *firstMenu = bar->addMenu("菜单名");
// 添加活动名
bar->addAction("活动名");
// 添加分割线
bar->addSeparator();
// 添加二级菜单
QMenu *secondMenu = bar->addMenu("菜单名");


// 工具栏
// 创建工具栏
QToolBar *toolBar = new QToolBar;
// 将工具栏添加到主窗口
this->addToolBar(toolBar);
// 配置工具栏能够显示的位置, 默认上下左右, 此处设置为 左右
// 更多搜索 setAllowedAreas
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
// 禁止工具栏浮动
toolBar->setFloatable(false);
// 禁止工具栏移动
toolBar->setMovable(false);
// 添加活动名
toolBar->addAction("活动名");
// 添加分割线
toolBar->addSeparator();
// 添加工具
toolBar->addWidget(组件名);


// 状态栏
QStatusBar * stBar = new QStatusBar;
this->setStatusBar(stBar);

// 将状态信息添加到左侧
stBar->addWidget(组件);
// 将状态信息添加到右侧
stBar->addPermanentWidget(组件);


// 配置中心部件
this->setCentralWidget(部件);


// 配置铆接部件
QDockWidget * dw = new QDockWidget("标题", this);
this->addDockWidget(Qt::LeftDockWidgetArea, dw);
dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

网站公告

今日签到

点亮在社区的每一天
去签到