[QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

2023-11-03

目录

3. QT窗体设计

3.2 自定义工具栏

3.2.1 目标

3.2.2 实现过程

3.2 自定义状态栏

3.2.1  目标

3.2.2  过程

3.3 自定义动作快捷键

3.4 自定义图标


3. QT窗体设计

3.2 自定义工具栏

在Qt中,ToolBar(工具栏)是一种常见的GUI元素,用于提供应用程序的常用工具按钮和操作。工具栏通常包含一系列图标按钮,用于执行常见的操作或快速访问功能

以下是在Qt中创建和使用工具栏的一般步骤:

  1. 创建工具栏对象:

    QToolBar* toolBar = new QToolBar(this); // 创建工具栏对象,this为父窗口或父部件
    
  2. 创建工具栏上的工具按钮:

    QAction* openAction = new QAction(QIcon(":/icons/open.png"), tr("打开"), this); // 创建一个工具按钮动作
    QAction* saveAction = new QAction(QIcon(":/icons/save.png"), tr("保存"), this); // 创建另一个工具按钮动作
    // 创建其他工具按钮动作...
    
  3. 将工具按钮添加到工具栏:

    toolBar->addAction(openAction); // 将工具按钮动作添加到工具栏
    toolBar->addAction(saveAction);
    // 添加其他工具按钮动作...
    
  4. 响应工具按钮的信号:

    connect(openAction, &QAction::triggered, this, &YourClass::openFile); // 连接工具按钮动作的触发信号和槽函数
    
  5. 将工具栏添加到应用程序的窗口或部件中:

    • 如果要将工具栏添加到QMainWindow窗口中,可以使用addToolBar()方法:

      QMainWindow* mainWindow = new QMainWindow(this); // 创建主窗口对象
      mainWindow->addToolBar(toolBar); // 将工具栏添加到主窗口
      // 设置其他窗口内容...
      mainWindow->show(); // 显示主窗口
      
    • 如果要将工具栏添加到其他QWidget部件中,可以借助布局管理器和一个QVBoxLayout或QHBoxLayout:

      QWidget* widget = new QWidget(this); // 创建包含工具栏的部件对象
      QVBoxLayout* layout = new QVBoxLayout(widget); // 创建垂直布局管理器
      layout->addWidget(toolBar); // 将工具栏添加到布局管理器
      // 设置其他部件内容并添加到布局中...
      widget->show(); // 显示部件
      

通过上述步骤,你可以创建和使用工具栏来展示常用的工具按钮。创建工具按钮动作,并将其添加到工具栏中。通过连接工具按钮动作的触发信号和槽函数,你可以响应工具按钮的点击事件,执行相应的操作。最后,将工具栏添加到应用程序的窗口或部件中,以显示和使用工具栏。

工具栏通常与Qt的其他组件结合使用,比如菜单栏和状态栏,以提供丰富和易用的用户界面。

3.2.1 目标

3.2.2 实现过程

  

 

 

 

3.2 自定义状态栏

在Qt中,StatusBar(状态栏)是一种常见的GUI元素,用于在应用程序的窗口底部显示即时状态信息、帮助信息、进度指示等。状态栏通常用于提供实时反馈和额外的上下文信息。

以下是在Qt中创建和使用状态栏的一般步骤:

  1. 创建状态栏对象:

    QStatusBar* statusBar = new QStatusBar(this); // 创建状态栏对象,this为父窗口或父部件
    
  2. 设置状态栏的属性:

    statusBar->showMessage(tr("这是状态栏的消息")); // 在状态栏中显示一条消息
    
  3. 将状态栏添加到应用程序的窗口或部件中:

    • 如果要将状态栏添加到QMainWindow窗口中,可以使用setStatusBar()方法:

      QMainWindow* mainWindow = new QMainWindow(this); // 创建主窗口对象
      mainWindow->setStatusBar(statusBar); // 将状态栏设置为主窗口的状态栏
      // 设置其他窗口内容...
      mainWindow->show(); // 显示主窗口
      
    • 如果要将状态栏添加到其他QWidget部件中,可以借助布局管理器和一个QVBoxLayout或QHBoxLayout:

      QWidget* widget = new QWidget(this); // 创建包含状态栏的部件对象
      QVBoxLayout* layout = new QVBoxLayout(widget); // 创建垂直布局管理器
      layout->addWidget(statusBar); // 将状态栏添加到布局管理器
      // 设置其他部件内容并添加到布局中...
      widget->show(); // 显示部件
      

通过上述步骤,你可以创建和使用状态栏来显示实时状态信息。你可以使用showMessage()方法在状态栏中显示一条消息,该消息会在一段时间后自动消失。你也可以使用addPermanentWidget()方法在状态栏中添加持久性的小部件,如进度条、按钮等。

状态栏通常与Qt的其他组件结合使用,比如菜单栏、工具栏,以提供更丰富的用户界面和功能。在应用程序的某些操作需要提示用户进度、状态或其他信息时,状态栏是一个非常方便的显示位置。

3.2.1  目标

3.2.2  过程

3.3 自定义动作快捷键

在Qt中,可以通过自定义动作(QAction)来设置快捷键,以提供快速执行操作的功能。

以下是在Qt中自定义动作快捷键的一般步骤:

  1. 创建动作对象:

    QAction* action = new QAction(tr("动作文本"), this); // 创建一个动作
    
  2. 设置动作的快捷键:

    action->setShortcut(QKeySequence(tr("Ctrl+O"))); // 设置动作的快捷键
    
  3. 响应动作的信号:

    connect(action, &QAction::triggered, this, &YourClass::handleAction); // 连接动作的触发信号和槽函数
    

通过上述步骤,你可以创建并设置自定义动作的快捷键。你可以使用setShortcut()方法设置动作的快捷键,采用QKeySequence类表示快捷键组合。快捷键可以包括单个按键、组合键(如Ctrl+Shift+A)或特殊键(如F1、Enter等)。

一旦设置了快捷键,当用户按下相应的键盘按键时,与动作关联的信号将被触发,你可以在槽函数中处理相应的操作。可以使用connect()函数连接动作的triggered信号和槽函数,以实现动作的功能。

自定义动作快捷键可用于增加用户界面的交互性和快速访问操作。你可以在菜单中使用自定义动作,并在相应的菜单项上显示快捷键信息。此外,还可以将自定义动作添加到工具栏或上下文菜单等组件中,方便用户通过快捷键或鼠标点击执行操作。

3.4 自定义图标

在Qt中,可以使用图标(Icon)来为各种组件(如按钮、菜单项、工具栏等)提供可视化的图形表示。

Qt提供了丰富的图标资源,包括内置的图标集以及自定义的图标

以下是在Qt中使用图标的一般步骤:

  1. 使用内置图标:
    Qt提供了一些内置图标,可以直接使用,无需额外的图标文件。

    QIcon icon = QIcon::fromTheme("文件打开"); // 使用内置图标,示例为"文件打开"图标
    
  2. 使用自定义图标:
    如果你有自定义的图标文件,可以将其导入到Qt项目中,并在代码中使用。

    QIcon icon(":/icons/icon.png"); // 使用相对路径或绝对路径指定图标文件
    
  3. 将图标应用于组件:
    可以将图标应用于各种组件,如按钮(QToolButton、QPushButton等)、菜单项(QAction)、工具栏等。

    QPushButton* button = new QPushButton(this); // 创建一个按钮
    button->setIcon(icon); // 设置按钮的图标
    
    QAction* action = new QAction(icon, tr("动作文本"), this); // 创建一个带图标的动作
    

    通过setIcon()方法,你可以将图标应用于相应的组件。

Qt提供了多种图标的尺寸和样式,可以根据需要选择合适的图标尺寸。

在使用图标时,建议选择与所在组件的大小相适应的图标尺寸,以保持良好的视觉效果。

使用图标可以增加应用程序的可视化效果和用户体验,并可以帮助用户快速识别组件的功能或操作。Qt还提供了一些方便的方法,如图标主题(Icon Theme)和SVG图标的支持,使得图标的使用更加灵活和便捷。

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标 的相关文章

随机推荐

  • webform jquery ajax,ajax - Asp.net webform, jquery - Stack Overflow

    I m working on a project of estimation for my office I m using Ajax Autocomplete in Visual Studio 2017 The following cod
  • 第九章:构造器与垃圾收集器-对象的前世今生

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 第九章 构造器与垃圾收集器 对象的前世今生 对象有生有死 必须对对象的生命周期负责 何时创建 何时销毁 不是消灭 只是放弃 由垃圾收集器 GC 将它蒸发掉 回收所占空
  • git命令总结

    1 git init 在当前目录下创建新的git仓库 2 git add filename 文件版本控制之前需要对这些文件进行追踪 对filename进行追踪 将文件添加进入缓存 3 git commit 提交更新 git commit a
  • IPv4 地址已耗尽,IPv6 涅槃重生:腾讯云IPv6改造综述

    引言 近日 全球 IPv4 地址正式耗尽的消息刷遍各大技术媒体 IPv6 再一次被推到人们面前 IP 作为网络世界的通行证 其重要性不言而喻 IPv4 地址枯竭 IPv6 作为IPv4地址枯竭的解决方案 其在中国的发展历程是怎样的 产品环环
  • 微信小程序开源项目精选

    本期为大家精选了码云上优秀的微信小程序开源项目 包括电商 博客 框架 建站系统 日常工具 图像识别等 希望能够给大家带来一点帮助 1 项目名称 微信电商小程序 作者 三三网络科技 项目简介 此项目是一套完整的电商系统 并且兼容各种电商场景可
  • 粒子滤波原理及其matlab仿真

    Github个人博客 https joeyos github io 粒子滤波原理及其matlab仿真 系统建模 粒子滤波算法不受线性高斯模型的约束 与卡尔曼滤波器一样 粒子滤波算法同样需要知道系统的模型 如果不知道系统的模型 也要想办法构建
  • Ubuntu 22.04 解决使用 .AppImage 文件方法

    AppImages 是一个文件系统 需要 FUSE 版本为 2 才能运行 但是 Ubuntu 22 04 的发行版本没有对其进行原始的配置的安装 重新安装并且配置即可 终端问题 未加载到 libfuse so 2 软连接 所以无法执行 Ap
  • C++对csv文件的读写

    include
  • 如何在线免费将MP4转换成MP3格式音乐

    MP4已经成为互联网上最流行的视频格式 我们从各种视频资源网站上下载到的视频文件大部分都是以MP4格式存储的 尤其是一些高品质的歌曲MV 为了达到在高压缩的前提下得到最好的质量 几乎都是mp4文件 但是如果你想直接在手机或者车上听这些歌曲
  • 【Mac】【Git】 全局配置 忽略 .DS_Store

    DS Store 是什么 Mac OS X 使用 DS Store 文件来存储文件夹特定的元数据信息 它们是在 Mac OS X Finder 访问的每个文件夹中创建的 甚至是网络宗卷和外部设备 文件夹级别的自定义存储在 DS Store
  • Vue锚链接(两种方法) scrollIntoView

    第一种 常见 锚链接 id和 href 结合起来 div style height 300px 第一 div div style height 300px 第二 div a href one 回到第一 a a href two 回到第二 a
  • 直流电源_滤波电路

    目录 前言 电容滤波电路 1 滤波原理 2 输出电压平均值 3 脉动系数 4 整流二极管的导通角 5 电容滤波电路的输出特性和滤波特性 倍压整流电路 其他形式的滤波电路 1 电感滤波电路 2 复式滤波电路 3 各种滤波电路的比较 前言 整流
  • 较好用的html5编译器

    一 BlueGriffon 基于 Firefox 渲染引擎的下一代 Web 和 EPUB 编辑器 链接 BlueGriffon 二 Aloha Editor 基于 所见即所得 的原则 HTML5 编辑器可以直接在门户网站上编辑网站 快速 简
  • 计算方法--解线性方程组的直接法

    文章目录 一 Gauss 消元法 1 顺序高斯消元法 总计算量 2 主元素高斯消元法 列主元素高斯消元法 3 高斯 约当 Gauss Jordan 消去法 总计算量 二 矩阵三角分解法 1 直接三角分解法 LU分解 Doolittle分解
  • WIN10安装后必做的优化,解决卡顿问题

    WIN10安装后必做的优化 解决卡顿问题
  • 储存过程之拉链表

    很多做数仓的朋友在面试的时候都会被问到 你写过的最难的存储过程是什么 这时候我们都会想到拉链表 拉链表真的那么难吗 下面我简单介绍一下拉链表作用 以及制作思路 希望可以帮到你 拉链表的作用 数据进行增量或者全量同步时 我们希望保留少数字段历
  • ELF文件格式的详解

    1 说明 2 elf文件的基本格式 3 elf文件的头部信息 4 elf文件的节区 Section 4 1 节区的作用 4 2 节区的组成 5 elf文件的段 Segment 6 用python解析elf文件 7 总结 1 说明 ELF的英
  • 设计模式之中介者模式

    中介者模式包装了一系列对象相互作用的方式 使得这些对象1不必相互明显作用 从而使它们可以松散耦合 当某些对象之间的作用发生改变时 不会立即影响到其他的一些对象之间的作用 保证这些作用可以彼此独立变化 中介者模式将多对多的相互作用转化为一对多
  • C语言函数程序实例(超全)

    目录 1 编写函数fun 功能是 计算n门课程的平均值 计算结果作为函数值返回 例如 若有5门课程的成绩是 92 76 69 58 88 则函数的值为76 599998 2 用函数将一个N阶方阵进行转置 输入输出在主函数中实现 使用for循
  • [QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

    目录 3 QT窗体设计 3 2 自定义工具栏 3 2 1 目标 3 2 2 实现过程 3 2 自定义状态栏 3 2 1 目标 3 2 2 过程 3 3 自定义动作快捷键 3 4 自定义图标 3 QT窗体设计 3 2 自定义工具栏 在Qt中