Linux系统 C/C++编程基础——基于Qt的图形用户界面编程

ℹ️大家好,我是练小杰,今天周四了,距离除夕只有4天了,各位今年卫生都搞完了吗!😆
本文是接着昨天Linux 系统C/C++编程的知识继续讲,基于Qt的图形用户界面编程概念及其命令,后续会不断添加相关内容噢~~
回顾:【基于GTK+的图形用户界面编程】
Linux专栏:🔝【Linux零基础开始】【Shell 脚本编程】

在这里插入图片描述

文章目录

  • Qt简介
    • 功能
    • Qt安装
      • 方法一:使用包管理器安装Qt(适用于Ubuntu系统)
      • 方法二:使用Snap包安装Qt(适用于Linux发行版)
    • 方法三:使用Qt官方安装程序
    • 方法四:使用Qt Maintenance Tool
    • 配置环境变量
      • 配置步骤:
  • 安装中可能遇到的问题
    • 缺少依赖库
    • 权限问题
  • Qt安装的图形界面
    • 在`Ubuntu`命令行中启动Qt设置向导,并提供Qt账户信息。
    • 选择安装组件
    • Qt Creator欢迎界面
  • Qt Creator使用
    • Qt的功能和特性
    • 构建的系统
    • Qt 工具集成
    • 插件系统
    • 用户界面
    • Qt Creator开发示例

在这里插入图片描述

Qt简介

Qt是一个跨平台的C++开发库,设计思想是同样的C++代码无需修改就可以在Windows、Linux、Mac OS等平台上使用。
Qt起初是由Trolltech(奇趣科技)公司开发的跨平台C++图形用户界面应用程序开发框架。

功能

  • Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等。
  • 并且, Qt 5是一个全新的用于跨平台应用程序和用户界面开发框架的版本,可应用于桌面、嵌入式和移动应用程序,在性能、功能和易用性方面做了极大的提升。

Qt安装

方法一:使用包管理器安装Qt(适用于Ubuntu系统)

  • 更新包列表:
sudo apt update
  • 安装Qt开发工具包:
sudo apt install qt5-default qtcreator

qt5-default:安装Qt 5的默认版本。
qtcreator:Qt的集成开发环境(IDE)

  • 验证安装
qmake -v

方法二:使用Snap包安装Qt(适用于Linux发行版)

  • 安装Snap(如果尚未安装):
sudo apt install snapd
  • 安装Qt Creator:
sudo snap install qtcreator

方法三:使用Qt官方安装程序

  • 下载Qt安装程序:

访问【Qt官方网站】下载适用于Linux的Qt安装程序(一般是一个.run文件)。

  • 赋予执行权限并运行安装程序
chmod +x qt-unified-linux-x64-<version>.run
./qt-unified-linux-x64-<version>.run

替换 <version> 为要下载的版本号

  • 按照安装向导完成安装:

选择安装路径和所需的组件。
完成安装后,配置环境变量(通常安装程序会自动完成)。

方法四:使用Qt Maintenance Tool

  • 下载Qt安装程序:

同样, 【Qt官方网站】下载适用于Linux的Qt安装程序。

  • 运行安装程序并选择“Maintenance Tool
./qt-unified-linux-x64-<version>.run
  • 使用Maintenance Tool进行管理

通过Maintenance Tool更新Qt版本、安装额外的组件或卸载不需要的部分。

配置环境变量

无论使用哪种方法安装Qt,通常需要配置环境变量以便在终端中直接使用Qt工具。

配置步骤:

  1. 打开终端并编辑bash配置文件,也可以使用你喜欢的文本编辑器。
nano ~/.bashrc
  1. 添加以下行 (假设Qt安装在/opt/Qt):
export PATH=/opt/Qt/5.15.2/gcc_64/bin:$PATH

这里要根据实际安装路径和版本号进行调整。

  1. 保存文件并应用更改:
source ~/.bashrc
  1. 验证安装, 检查Qt版本信息
qmake -v
  1. 运行Qt Creator:

在终端中输入 qtcreator 或通过应用菜单启动Qt Creator

安装中可能遇到的问题

缺少依赖库

如果在安装过程中遇到缺少依赖库的错误,可以使用包管理器安装相应的库。

比如:

sudo apt install build-essential libgl1-mesa-dev

权限问题

确保你有足够的权限执行安装程序,或使用 sudo 提升权限。

Qt安装的图形界面

Ubuntu命令行中启动Qt设置向导,并提供Qt账户信息。

在这里插入图片描述

选择安装组件

在这里插入图片描述

Qt Creator欢迎界面

在这里插入图片描述

Qt Creator使用

Qt Creator 是由 Qt 公司开发的一款跨平台的集成开发环境(IDE),主要用于 Qt 应用程序的开发。它为开发者提供了一个集成的工具集,涵盖了从代码编写、编译、调试到部署的整个开发流程。

Qt的功能和特性

  • 复杂代码编辑器。
  • 版本控制。
  • 集成用户界面设计器:

Qt Creator 提供了两个集成的可视化编辑器:用于通过 Qt widget 生成用户界面的 Qt Designer,以及用于通过
QML 语言开发动态用户界面的 Qt Quick Designer。

  • 项目和编译管理。
  • 桌面和移动平台。
  • Qt模拟器。

构建的系统

Qt Creator 支持多种构建系统

  • qmake:Qt 传统的构建系统,简单易用,适合中小型项目。
  • CMake:现代的跨平台构建系统,适合大型和复杂项目。
  • Qbs:Qt 推出的新一代构建系统,灵活且高效。
  • 自定义构建步骤:允许用户自定义构建步骤和脚本,满足特定需求。

Qt 工具集成

Qt Creator 与 Qt 框架紧密集成,提供了多种 Qt 专用工具。

  • Qt Designer:集成 Qt Designer,方便进行 Qt 界面设计。
  • Qt Linguist:集成 Qt Linguist,方便进行应用程序的国际化。
  • Qt Resource Editor:方便管理 Qt 资源文件,如图标、翻译文件等。
  • Qt Quick Designer:支持 Qt Quick 界面设计,提供可视化编辑功能。

插件系统

Qt Creator 支持插件扩展,用户可以通过安装插件来扩展 IDE 的功能。

  • 版本控制插件:如 Git、Subversion 等。
  • 语言支持插件:如 Python、Ruby 等。
  • 工具集成插件:如 Valgrind、Doxygen 等。

用户界面

Qt Creator 的用户界面设计直观,包含了多个关键组件。

  • 主窗口:包含菜单栏、工具栏、项目视图、代码编辑器、输出面板等。
  • 项目视图:显示项目的文件结构,方便导航和管理项目文件。
  • 代码编辑器:支持语法高亮、代码补全、代码折叠、重构功能等,提升编码效率。
  • 输出面板:显示编译输出、调试信息、应用程序输出等。

Qt Creator开发示例

  • 选择项目模板
    在这里插入图片描述
  • 设置项目名称和路径

在这里插入图片描述

  • 选择项目要使用的套件

在这里插入图片描述

  • 设置类信息
    在这里插入图片描述

  • 项目管理汇总信息

在这里插入图片描述

  • 项目管理界面
    在这里插入图片描述

  • 图形用户界面设计
    在这里插入图片描述

  • 编辑标签文本

在这里插入图片描述

  • 正常运行结果

在这里插入图片描述

  • 编译输出信息
    在这里插入图片描述

  • 选择构建方式
    在这里插入图片描述

今晚的内容到这里就结束了😆
ℹ️想了解更多,点击主页【练小杰的CSDN】
⚠️若博客里的内容有问题,欢迎指正,我会及时修改!!!
明天再见啦,各位🧍大佬们~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/958861.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++11(二)

目录 左值引用与右值引用 左值引用 右值引用 右值与左值交叉引用 移动语义 移动构造 移动赋值 完美转发 本期我们将学习C11中比较重要的一个知识点------右值引用。 左值引用与右值引用 在学习左值引用和右值引用之前&#xff0c;我们得先知道什么是左值&#xff0…

【python】四帧差法实现运动目标检测

四帧差法是一种运动目标检测技术&#xff0c;它通过比较连续四帧图像之间的差异来检测运动物体。这种方法可以在一定的程度上提高检测的准确性。 目录 1 方案 2 实践 ① 代码 ② 效果图 1 方案 具体的步骤如下&#xff1a; ① 读取视频流&#xff1a;使用cv2.VideoCapture…

SpringBoot开发(二)Spring Boot项目构建、Bootstrap基础知识

1. Spring Boot项目构建 1.1. 简介 基于官方网站https://start.spring.io进行项目的创建. 1.1.1. 简介 Spring Boot是基于Spring4框架开发的全新框架&#xff0c;设计目的是简化搭建及开发过程&#xff0c;并不是对Spring功能上的增强&#xff0c;而是提供了一种快速使用Spr…

PMP–一、二、三模–分类–12.采购管理

文章目录 技巧十二、采购管理 一模12.采购管理--3.控制采购--输出--风险登记册--每个被选中的卖方都会带来特殊的风险。随着早期风险的过时以及新风险的出现&#xff0c;在项目执行期间对风险登记册进行变更。 供应商还未开始做&#xff0c;是一个风险&#xff0c;当做风险进行…

栈和队列(C语言)

目录 数据结构之栈 定义 实现方式 基本功能实现 1&#xff09;定义&#xff0c;初始化栈 2&#xff09;入栈 3&#xff09;出栈 4&#xff09;获得栈顶元素 5)获得栈中有效元素个数 6&#xff09;检测栈是否为空 7&#xff09;销毁栈 数据结构之队列 定义 实现方…

B站pwn教程笔记-1

因为没有垃圾处理机制&#xff0c;适合做编译&#xff0c;不会有堵塞 c语言市场占有率还是比较高的。 Windows根据后缀识别文件&#xff0c;linux根据文件头识别 55:16 编译过程 一步&#xff1a;直接gcc编译.c文件 这只是其中的一些步骤 gcc -S 转变为汇编。但其实这时候还…

jQuery小游戏

jQuery小游戏&#xff08;一&#xff09; 嘻嘻&#xff0c;今天我们来写个jquery小游戏吧 首先&#xff0c;我们准备一下写小游戏需要准备的佩饰&#xff0c;如果&#xff1a;图片、音乐、搞怪的小表情 这里我准备了一些游戏中需要涉及到的图片 游戏中使用到的方法 eval() 函…

Batch Normalization学习笔记

文章目录 一、为何引入 Batch Normalization二、具体步骤1、训练阶段2、预测阶段 三、关键代码实现四、补充五、参考文献 一、为何引入 Batch Normalization 现在主流的卷积神经网络几乎都使用了批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09;1&#xf…

JavaSec系列 | 动态加载字节码

视频教程在我主页简介或专栏里 目录&#xff1a; 动态加载字节码 字节码 加载远程/本地文件 利用defineClass()直接加载字节码 利用TemplatesImpl加载字节码 动态加载字节码 字节码 Java字节码指的是JVM执行使用的一类指令&#xff0c;通常被存储在.class文件中。 加载远程…

第十四讲 JDBC数据库

1. 什么是JDBC JDBC&#xff08;Java Database Connectivity&#xff0c;Java数据库连接&#xff09;&#xff0c;它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库&#xff0c;并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作…

JVM面试题解,垃圾回收之“分代回收理论”剖析

一、什么是分代回收 我们会把堆内存中的对象间隔一段时间做一次GC&#xff08;即垃圾回收&#xff09;&#xff0c;但是堆内存很大一块&#xff0c;内存布局分为新生代和老年代、其对象的特点不一样&#xff0c;所以回收的策略也应该各不相同 对于“刚出生”的新对象&#xf…

电脑如何访问手机文件?

手机和电脑已经深深融入了我们的日常生活&#xff0c;无时无刻不在为我们提供服务。除了电脑远程操控电脑外&#xff0c;我们还可以在电脑上轻松地访问Android或iPhone手机上的文件。那么&#xff0c;如何使用电脑远程访问手机上的文件呢&#xff1f; 如何使用电脑访问手机文件…

ThinkPHP 8模型与数据的插入、更新、删除

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

【MySQL】数据库基础知识

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;【MySQL】数据库基础知识 发布时间&#xff1a;2025.1.21 隶属专栏&#xff1a;MySQL 目录 什么是数据库为什么要有数据库数据库的概念 主流数据库mysql的安装mysql登录使用一下mysql显示数据库内容创建一个数据库创…

【线性代数】基础版本的高斯消元法

[精确算法] 高斯消元法求线性方程组 线性方程组 考虑线性方程组&#xff0c; 已知 A ∈ R n , n , b ∈ R n A\in \mathbb{R}^{n,n},b\in \mathbb{R}^n A∈Rn,n,b∈Rn&#xff0c; 求未知 x ∈ R n x\in \mathbb{R}^n x∈Rn A 1 , 1 x 1 A 1 , 2 x 2 ⋯ A 1 , n x n b 1…

高等数学学习笔记 ☞ 微分方程

1. 微分方程的基本概念 1. 微分方程的基本概念&#xff1a; &#xff08;1&#xff09;微分方程&#xff1a;含有未知函数及其导数或微分的方程。 举例说明微分方程&#xff1a;&#xff1b;。 &#xff08;2&#xff09;微分方程的阶&#xff1a;指微分方程中未知函数的导数…

HarmonyOS基于ArkTS卡片服务

卡片服务 前言 Form Kit&#xff08;卡片开发框架&#xff09;提供了一种在桌面、锁屏等系统入口嵌入显示应用信息的开发框架和API&#xff0c;可以将应用内用户关注的重要信息或常用操作抽取到服务卡片&#xff08;以下简称“卡片”&#xff09;上&#xff0c;通过将卡片添加…

Java复习第四天

一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1: 输入:p[1,2,3]&#xff0c;q[1,2,3] 输出:true示例 2: 输…

全面了解 Web3 AIGC 和 AI Agent 的创新先锋 MelodAI

不管是在传统领域还是 Crypto&#xff0c;AI 都是公认的最有前景的赛道。随着数字内容需求的爆炸式增长和技术的快速迭代&#xff0c;Web3 AIGC&#xff08;AI生成内容&#xff09;和 AI Agent&#xff08;人工智能代理&#xff09;正成为两大关键赛道。 AIGC 通过 AI 技术生成…

新能源汽车充电桩选型以及安装应用

摘要:随着当前经济的不断发展,国家的科技也有了飞速的进步,传统的燃油汽车已经不能适应当前社会的发展,不仅对能源造成巨大的消耗,还对环境造成了污染,当前一种新型的交通运输工具正在占领汽车市场。在环境问题和能源问题愈发严重的当今社会,节能减排已经成为全世界的共同课题,…