Qt 窗口框架与菜单栏 QMenuBar
Qt 窗口通过 QMainWindow 类实现,提供主窗口程序的基础结构。QMainWindow 继承自 QWidget,包含预定义的布局组件。
Qt 中组件的组成框架
QMainWindow 包含以下主要组件:
- 菜单栏 (Menu Bar):位于标题栏下方。
- 工具栏 (Tool Bars):常用选项的快速访问区域。
- 中心部件 (Central Widget):窗口核心部分,由用户组件构成。
- 状态栏 (Status Bar):显示信息给用户查看。
- 浮动窗体 (Dock Widgets):可停靠的子窗口。

菜单栏 QMenuBar
一个主窗口最多只有一个菜单栏,通过 QMenuBar 类实现。菜单结构涉及 QMenu(菜单)、QMenuBar(菜单栏)和 QAction(菜单项)。
创建步骤
- 创建 QMainWindow 而非 QWidget。
- 在对象树中自动包含菜单栏和状态栏。
- UI 文件中可直接输入文本创建菜单和菜单项。
注意:添加菜单项时若无法使用中文,可通过复制粘贴方式处理。
代码实现
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtDebug>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
// 1. 创建菜单栏 QMenuBar
QMenuBar *bar = new QMenuBar();
// 2. 将菜单栏添加到对象树中
setMenuBar(bar);
// 3. 创建菜单 QMenu
QMenu* menu_file = new QMenu("文件");
bar->(menu_file);
QMenu* menu_edit = ();
bar->(menu_edit);
QMenu* menu_view = ();
bar->(menu_view);
QAction* action1 = ();
QAction* action2 = ();
QAction* action3 = ();
QAction* action4 = ();
menu_file->(action1);
menu_file->(action2);
menu_file->(action3);
menu_file->(action4);
(action1, &QAction::triggered, , &MainWindow::handle);
}
{
() << ;
}
MainWindow::~() {
ui;
}


