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();

QT学习笔记(六):Qt5主窗口框架示例相关推荐

  1. Qt学习之对话框与主窗口的创建

    Qt中的信号与槽机制 qt中槽和普通的C++成员函数几乎是一样的--可以是虚函数,可以被重载,可以是共有的,保护的或者私有的. 槽可以和信号连接在一起,在这种情况下,每当发射这个信号的信号,就会自动调 ...

  2. QT学习笔记(十六):setwindowflags的属性总结

    QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性.它们是不常用的,但在一些情况下是必要的.其中一些标志取决于底层窗口管理器是否支持它们. 主要类 ...

  3. QT 学习笔记(六)

    文章目录 一.设计器的使用 二.常用控件 1. Containers 容器类 2. Input Widgets 输出控件 3. Display Widgets 显示类控件 三.代码和运行结果 1. 主 ...

  4. Qt应用程序主窗口之一:主窗口框架

    对于日常见到的应用程序而言,许多都是基于主窗口的,主窗口中包含了菜单栏.工具栏.状态栏和中心区域等.这一章会详细介绍主窗口的每一个部分,还会涉及资源管理.富文本处理.拖放操作和文档打印等相关内容.重点 ...

  5. python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)

    https://doc.qt.io/qtforpython/PySide2/QtWidgets/QMainWindow.html?highlight=qmainwindow#PySide2.QtWid ...

  6. QT学习笔记(五):Qt5的8种标准对话框示例

    QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...

  7. QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决

    QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决 问题: 1.解决方法一: 2.解决方法二: 3.解决方法三: 4.解决方法四: 结果显示: Qt5+MSVC编译 中文字符显示乱码. ...

  8. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  9. Qt应用程序主窗口框架

    Qt 应用程序主窗口框架 1. Qt资源系统.菜单栏和工具栏 1.1 使用资源 1.2 编写代码方式添加菜单 1.3 菜单栏 1.4 工具栏 2. 中心部件 3. Dock部件 4. 状态栏 5. 例 ...

最新文章

  1. VS不能编译指定版本(配置管理错误)
  2. hadoop入门学习系列之三mysq+php+mysqladmin安装
  3. FreeCodeCamp 中级算法(个人向)
  4. mysql-mha高可用
  5. 字节顺序:高位优先(big-endian)和低位优先(little-endian)
  6. SAP Spartacus b2b home页面的自动换行是怎么做到的
  7. 移动端 关闭浏览器事件_前端开发中什么是移动端点透事件?
  8. 基于事件驱动架构构建微服务第12部分:向Apache KAFKA生成事件
  9. 5款神器级别Github 的Chrome插件
  10. Python中math模块的使用
  11. linux硬盘系统安装教程图解,Linux操作系统添加安装新硬盘的方法图解
  12. linux之cp强制复制文件
  13. IAR Embedded Workbench IDE 显示行号
  14. 从例图中学习思维导图的基本概念
  15. Java基础之访问文件与目录——获取与文件存储有关的信息(GetFileStores)
  16. java冷门小功能代码收集
  17. C++搭建集群聊天室(二):安装muduo网络库
  18. 树莓派用USB蓝牙适配器连接蓝牙设备
  19. java泛型——泛型类、泛型方法、泛型接口
  20. 免费好用的流程图软件yed

热门文章

  1. PAT乙类1013 数素数 (20 分)
  2. Calibration: 一个工业价值极大,学术界却鲜有研究的问题!
  3. 超一流 | 从XLNet的多流机制看最新预训练模型的研究进展
  4. 美团 iOS 工程 zsource 命令背后的那些事儿
  5. 论文浅尝 | Data Intelligence - 多篇语义资源论文
  6. 论文浅尝 | 中科院百度微软等学者最新综述论文40+最新方法阐述知识图谱提升推荐系统准确性与可解释性...
  7. 论文浅尝 | TuckER:基于张量分解的知识图谱补全
  8. 论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法
  9. 对知识图谱的告白:斯坦福大学CS520课程介绍
  10. java和python对比----1: