QT学习笔记(五):Qt5主窗口框架代码示例
一、添加编辑菜单:并在下拉菜单和工具栏中添加“打开文件”动作菜单
#include <QToolButton>
#include <QSpinBox>
#include <QTextEdit>
#include <QMdiSubWindow>
#include <QLabel>
// 1.添加菜单:文件
QMenu *fileMenu = ui->menuBar->addMenu(tr("文件(&F)"));
// 2.添加动作:打开文件
QAction *action_new = fileMenu->addAction(QIcon(":/image/images/new.png"),tr("新建文件(&N)"));
// 3.为打开文件动作:设置快捷键:
action_new->setShortcut(QKeySequence("Ctrl+N"));
// 4.获取工具栏,在工具栏中添加:“新建文件”动作菜单
ui->mainToolBar->addAction(action_new);
// 同理
QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)"));
QAction *action_Open = editMenu->addAction(QIcon(":/image/images/open.png"),tr("打开文件(&O)"));
action_Open->setShortcut(QKeySequence("Ctrl+O"));
ui->mainToolBar->addAction(action_Open);
二、建立动作组:并添加包含3个动作菜单:左对齐、右对齐、居中
QActionGroup *group = new QActionGroup(this); // 0.建立动作组
QAction *action_L = group->addAction(tr("左对齐(&L)")); // 1.向动作组中添加动作:左对齐
action_L->setCheckable(true); // 2.设置动作checkable属性为true
action_L->setChecked(true); // 3.最后指定action_L为选中状态
QAction *action_R = group->addAction(tr("右对齐(&R)"));
action_R->setCheckable(true);
QAction *action_C = group->addAction(tr("居中(&C)"));
action_C->setCheckable(true);
editMenu->addSeparator(); // 4.向菜单中添加间隔器
editMenu->addAction(action_L); // 5.向菜单中添加动作:左对齐
editMenu->addAction(action_R); // 6.向菜单中添加动作:右对齐
editMenu->addAction(action_C); // 7.向菜单中添加动作:居中
三、工具栏中添加其他窗口部件:按钮,微调框
QToolButton *toolBtn = new QToolButton(this); // 1.创建QToolButton 类对象:toolBtn(工具栏按钮“颜色”)
ui->mainToolBar->addWidget(toolBtn); // 2.将toolBtn按钮添加到工具栏
toolBtn->setText(tr("颜色")); // 3.设置toolBtn按钮名称
QMenu *colorMenu = new QMenu(this); // 4.创建一个菜单 (colorMenu)
colorMenu->addAction(tr("红色")); // 添加动作菜单:红色
colorMenu->addAction(tr("绿色")); // 添加动作菜单:绿色
toolBtn->setMenu(colorMenu); // 5.将菜单(colorMenu)添加进工具栏按钮(toolBtn“颜色”)中
toolBtn->setPopupMode(QToolButton::MenuButtonPopup); // 设置菜单弹出模式
QSpinBox *spinBox = new QSpinBox(this); // 6.创建QSpinBox
ui->mainToolBar->addWidget(spinBox); // 7.向工具栏添加QSpinBox部件
四、生成状态栏
//ui->statusBar->showMessage(tr("欢迎使用多文档编辑器"), 5000); // 1.显示临时消息,显示2000毫秒即2秒
QLabel *normal_label = new QLabel(this); // 2.创建标签(用于生成正常消息)
normal_label->setFrameStyle(QFrame::Box | QFrame::Sunken);
normal_label->setText("hahahaha");
ui->statusBar->addWidget(normal_label); // 3.添加标签至状态栏(用于生成正常消息,可能被临时消息覆盖)
QLabel *permanent = new QLabel(this); // 4.创建标签(用于生成永久消息)
permanent->setFrameStyle(QFrame::Box | QFrame::Sunken); // 5.设置标签样式并显示信息,
permanent->setText("www.qter.org");
ui->statusBar->addPermanentWidget(permanent); // 6.然后将其以永久部件的形式添加到状态栏
多文档编辑器:新建一个文本编辑器部件
QTextEdit *edit = new QTextEdit(this); // 1.以文本编辑器为中心部件
QMdiSubWindow *child = ui->mdiArea->addSubWindow(edit); // 2.使用QMdiArea::addSubWindow()函数创建子窗口
child->setWindowTitle(tr("多文档编辑器子窗口"));
child->show();