当前位置: 首页 > news >正文

力学笃行(二)Qt 示例程序运行

Qt 示例程序运行

  • 1. Qt 示例程序简介
    • 1.1 编译报错问题: qt: error: cannot open C:\Users\我的电脑\AppData\Local\Temp\main.obj.34588.15.jom for write
  • 2. Qt 示例程序主要分类
    • 2.1 Widgets 示例
    • 2.2 Qt Quick 示例
    • 2.3 3D 示例
    • 2.4 多媒体示例
    • 2.5 网络示例
    • 2.6 数据库示例
    • 2.7 图形视图示例
    • 2.8 其他示例

1. Qt 示例程序简介

Qt 自带的示例程序覆盖了广泛的应用场景和功能,涉及 图形界面 (GUI)、多媒体、网络编程、数据库 等各个方面。为了帮助你更好地理解和使用这些示例,下面将对 Qt 示例程序的主要分类进行详细讲解。
在这里插入图片描述

示例目录通常分为以下几类:

分类说明
Widgets用于创建传统的窗口应用程序,适合学习 Qt 控件和事件处理。
Quick用于创建基于 QML 的应用程序,适合跨平台和响应式 UI。
3D用于展示 3D 图形的示例。
Multimedia多媒体示例,学习音频、视频、相机等多媒体功能。
Network网络示例,展示如何进行网络通信,支持 TCP/IP、HTTP、FTP 等协议。
SQL数据库示例,学习如何在 Qt 中使用 SQL 数据库进行数据存储和查询。
Qt Graphics View Framework图形视图示例,2D 图形渲染和交互。

1.1 编译报错问题: qt: error: cannot open C:\Users\我的电脑\AppData\Local\Temp\main.obj.34588.15.jom for write

  1. 编译Qt是报错:
    在这里插入图片描述
  2. 产生原因:这是英文Qt不支持中文路径,编译Qt时用到了这个目录。
    C:\Users\我的电脑\AppData\Local\Temp是系统的一个临时文件,这个文件路径有中文就会报错。
  3. 解决方法:编辑Preferences…构建和运行—>把使用jom代替nmake前的√去掉
    在这里插入图片描述
    在这里插入图片描述
  4. 运行成功
    在这里插入图片描述

2. Qt 示例程序主要分类

2.1 Widgets 示例

Widgets 示例程序主要展示如何使用 Qt 的传统控件来构建桌面应用程序。这些控件包括按钮、文本框、标签、布局管理等,适用于常见的桌面 GUI 应用程序。

示例:

  • Clock:显示一个模拟时钟。演示了如何使用定时器来更新时间并更新显示。
  • Address Book:一个简单的地址簿应用,展示了如何使用 QTableView 来显示表格数据,支持增、删、改功能。
  • Notepad:一个简单的记事本应用,演示了如何使用 QTextEdit 来编辑文本,并且包含文件打开、保存等功能。
  • TextEdit:演示如何使用 QTextEdit 控件,展示了简单的富文本编辑功能。

这些示例程序适合学习 Qt 的基本控件使用、事件处理、布局管理、信号与槽机制等。

2.2 Qt Quick 示例

Qt Quick 示例程序使用 QML 和 Qt Quick 框架来构建现代的响应式 UI。与传统的 Widgets 不同,Qt Quick 使用 QML 和 JavaScript 来描述 UI 和交互逻辑,适合开发跨平台的移动应用和桌面应用。

示例:

  • Calculator:一个简单的计算器应用,展示了如何使用 QML 构建响应式界面并绑定 JavaScript 进行逻辑计算。
  • Phonebook:展示了如何创建一个基于 QML 的电话本,使用 ListView 和 Model 结合的方式来显示联系人列表。
  • Gallery:一个图片浏览器应用,展示了如何使用 GridView 和 Image 控件来实现图像浏览功能。

这些示例程序展示了 QML 的强大功能和易于使用的 UI 设计方式,适合学习如何使用 QML 来构建现代化的、动态的用户界面。

2.3 3D 示例

Qt 支持 3D 图形的渲染,提供了 Qt 3D 模块。3D 示例程序展示了如何创建 3D 场景、模型、光照、相机等内容,适用于需要图形渲染的应用。

示例:

  • 3D Model Viewer:展示了如何加载并显示 3D 模型,支持旋转、缩放等交互操作。
  • 3D Cube:演示了如何使用 Qt3DCore 和 Qt3DQuick 来创建 3D 场景,操作 3D 对象的变换和渲染。

这些示例程序适合学习 Qt 3D 的基础使用,包括 3D 模型的加载与显示、相机控制、光照和阴影效果等。

2.4 多媒体示例

Qt 提供了丰富的多媒体功能,支持音频、视频、音效等的处理。多媒体示例程序展示了如何在 Qt 中使用 Multimedia 模块来处理音频和视频数据。

示例:

  • Audio Player:一个简单的音频播放器,展示了如何使用 QMediaPlayer 播放音频文件。
  • Video Player:一个简单的视频播放器,展示了如何使用 QMediaPlayer 和 QVideoWidget 来播放视频文件。
  • Camera:展示了如何通过 Qt 访问和使用设备的相机,捕获并显示视频流。

这些示例适合学习如何使用 Qt 的多媒体功能,掌握视频和音频的播放、录制、处理等操作。

2.5 网络示例

Qt 提供了强大的网络支持,能够帮助开发者构建各种网络应用。网络示例程序展示了如何使用 Qt Network 模块进行 TCP/IP、HTTP 等协议的通信。

示例:

  • Chat Client:一个简单的聊天客户端,展示了如何使用 TCP 套接字与服务器进行通信,发送和接收消息。
  • HTTP Downloader:展示了如何使用 QNetworkAccessManager 和 QNetworkReply 下载文件。
  • FTP Client:展示了如何使用 Qt 实现一个 FTP 客户端,支持连接到 FTP 服务器、上传和下载文件。

这些示例适合学习如何在 Qt 中进行网络编程,使用 Qt 提供的网络类进行数据传输、协议实现等。

2.6 数据库示例

Qt 提供了对数据库的支持,可以通过 Qt SQL 模块连接、查询和操作数据库。数据库示例程序展示了如何使用 Qt 与数据库进行交互。

示例:

  • SQL Database:展示了如何使用 QSqlDatabase 和 QSqlQuery 类来连接到 SQL 数据库,执行 SQL 查询,展示查询结果。
  • Address Book (Database):展示了如何将一个地址簿应用与 SQLite 数据库结合,存储和读取联系人数据。

这些示例适合学习如何在 Qt 中使用数据库,掌握如何执行 SQL 查询、处理数据模型等。

2.7 图形视图示例

Qt 提供了一个强大的图形视图框架,适用于 2D 图形的渲染和处理。图形视图示例程序展示了如何使用 Qt Graphics View Framework 来绘制和管理图形项。

示例:

  • Graphics View:展示了如何使用 QGraphicsView 和 QGraphicsScene 来渲染图形项,处理图形项的交互。
  • Interactive Graphics View:展示了如何使用 QGraphicsItem 创建自定义图形项,并响应用户的交互事件(如拖动、点击等)。

这些示例适合学习如何在 Qt 中使用图形视图框架,创建和管理 2D 图形项,实现图形渲染和交互。

2.8 其他示例

Qt 还提供了一些其他示例,涵盖了各种不同的功能和应用场景。

示例:

  • Drag and Drop:展示了如何实现 Qt 中的拖放操作,支持从一个控件拖动数据到另一个控件。
  • Styled Buttons:演示了如何自定义按钮的样式,使用 CSS 样式表调整按钮外观。
  • Clipboard:展示了如何访问系统剪贴板,支持复制和粘贴功能。
  • SVG Viewer:展示了如何加载并显示 SVG 图像,支持缩放和旋转。

这些示例适合学习 Qt 中的特殊功能和控件,掌握如何使用 Qt 扩展应用程序的功能。


http://www.mrgr.cn/news/81043.html

相关文章:

  • 如何在Windows系统上安装和配置Maven
  • 半连接转内连接 | OceanBase SQL 查询改写
  • Vue 前端代码规范
  • 多进程、多线程、分布式测试支持-pytest-xdis插件
  • thinkphp8+layui分页
  • 「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
  • 腾讯云云开发 Copilot 深度探索与实战分享
  • 【多模态】swift-3框架使用
  • 定时任务——定时任务技术选型
  • dockerfile文档编写(2):docker pull和pip镜像加速
  • 【Rust自学】4.4. 引用与借用
  • javaEE--计算机是如何工作的-1
  • 【Rust自学】5.1. 定义并实例化struct
  • Timsort算法
  • 排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
  • 【Rust自学】4.5. 切片(Slice)
  • yolov8的标签匹配解析
  • 39.在 Vue3 中使用 OpenLayers 导出 GeoJSON 文件及详解 GEOJSON 格式
  • 多个Echart遍历生成 / 词图云
  • [Java]合理封装第三方工具包(附视频)
  • 数据仓库工具箱—读书笔记02(Kimball维度建模技术概述03、维度表技术基础)
  • 海格通信嵌入式面试题及参考答案
  • draw.io 导出svg图片插入word后模糊(不清晰 )的解决办法
  • Restaurants WebAPI(四)——Identity
  • nodejs利用子进程child_process执行命令及child.stdout输出数据
  • LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读