Qt(简介)

1. Qt简介

Qt是一个基于C++的图形用户界面(GUI)框架,可以开发可视化人机交互程序,但是这并不是Qt的全部。Qt除了可以绘制漂亮的界面外,还包含很多其他的功能:多线程、数据库、图像处理、音视频处理、网络通信、文件IO......

Qt开发的产品可以分为两类:

  • 纯软开发

.......

  • 嵌入式开发

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

2. Qt优势(掌握)

跨平台:一次编程,到处编译。

面向对象开发

丰富的API和开发文档

开源

......

3. 环境安装与配置

统一要求使用Qt Creator,在开发之前因为先试用Qt Creator开发了C++,当时把编码设置为了System,而Qt不支持System编码,需要在编程之前先把Qt Creator的编码重新重置为UTF-8。

4. 新建项目

新建一个完整的Qt项目的操作步骤如下:

1. 点击

2. 在弹出的窗口中按照下图所示进行操作。

3. 设置项目名称和路径,不能包含中文字符

4. 直接下一步。

5. 在弹出的窗口中,选择基类为QDialog。

6. 项目管理界面直接点击完成。

7. 项目创建完成后,可以看到文件比C++多。

5. 项目结构(掌握)

在Qt Creator中显示五个文件,如果在Windows打开代码所在的目录(工作目录),可以看到可以有六个文件。

  • .pro 项目配置文件

用于配置项目参数,在Windows中双击此文件可导入项目。

#-------------------------------------------------
#
# Project created by QtCreator 2024-10-12T09:31:09
#
#-------------------------------------------------# 添加core模块和GUI模块
QT       += core gui# 如果当前Qt的主版本号大于4,则添加widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 生成exe可执行文件的名称
TARGET = HelloWorld0928
# 当前项目以Qt应用程序的方式构建
TEMPLATE = app# 项目中包含的源文件
SOURCES += main.cpp\
        dialog.cpp# 项目中包含的头文件
HEADERS  += dialog.h# 项目中包含的界面文件
FORMS    += dialog.ui
  • .user 用户文件

此文件是Qt项目基于当前运行环境生成的用户文件,每个项目、每台计算机的此文件都不通用,在传输项目之间建议删除此文件,如果拿到他人的项目包含此文件,需要在导入项目之前先删除。

  • main.cpp 主文件

内部包含主函数——程序执行的入口,此文件通常不需要改动。

#include "dialog.h"
#include <QApplication> // Qt内置类都是Q开头的int main(int argc, char *argv[])
{
    //QApplication类管理GUI应用程序的控制流程和主要设置。
    QApplication a(argc, argv);
    // Dialog类是项目自动编写的类型
    // 此类包含2-3个文件
    // 1. dialog.h 头文件
    // 2. dialog.cpp 源文件
    // 3. diaoog.ui 界面文件(非必须)
    // 创建了一个对话框窗口的栈内存对象
    Dialog w;
    // 展示窗口
    w.show();    return a.exec(); // 进入主事件循环
}
  • dialog.h

Dialog类的声明。

  • dialog.cpp

Dialog类的定义。

  • dialog.ui

Dialog类的样式,此文件非必须。

6. 帮助手册(重点)

在Qt中查阅帮助手册的能力非常重要,有三种查阅的方式:

  • Windows中搜索Assistant程序,这是一款独立的查阅文档的应用程序。比较适合双屏用户。

  • 在Qt Creator中点击,可以直接打开一个Qt Creator内置的Assistant程序。

  • 编辑代码时,光标停留在要查询的内容上,双击键盘F1,可以自动跳转到当前内容对应的文档。

查阅文档需要注意下图中红色标记区域。

7. 调试信息类QDebug(掌握)

在Qt中输出调试信息不再使用cout,而是替换为QDebug,因为Qt信息输出是区分前后台的,前台指的是用户可视界面,后台是开发者可见,但用户不可见的区域。

传统的C和C++输出的内容是不区分前后台的。

QDebug可以把调试信息在Qt后台输出,避免用户可见。

新建一个项目,取消Dialog类的界面文件(这样的项目更简单),只需要更改第4节中新建项目的第5步,如下:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug> // 调试信息类class Dialog : public QDialog
{
    Q_OBJECT // 别删public:
    Dialog(QWidget *parent = 0); // 构造函数
    ~Dialog(); // 析构函数
};#endif // DIALOG_H

dialog.cpp

#include "dialog.h"// 构造函数定义
Dialog::Dialog(QWidget *parent): QDialog(parent) // 透传构造
{
    // 连续输出的过程中,中间自动加空格
    // 每句qDebug()最后都自动添加换行
    // 【Qt命名规范】
    // 变量和函数使用小驼峰命名法:
    // 第一个单词全小写,后续每个单词的首字母大写
    qDebug() << "构造函数" << "调用了";
}// 析构函数定义
Dialog::~Dialog()
{
    qDebug() << "析构函数";
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python画笔案例-085 绘制 3D效果文字

1、绘制3D效果文字 通过 python 的turtle 库绘制 3D效果文字,如下图: 2、实现代码 绘制 3D效果文字,以下为实现代码: """3D效果文字.py """ import turtle# 给Turtle类增加addx和addy方法 turtle.Turtle.addx = lambda self,dx

OpenUAV:首个专为现实无人机视觉语言导航设计的大规模轨迹数据集,由大约 12k 个轨迹组成,涵盖了多种环境和复杂的飞行动态。

2024-10-10&#xff0c;由北京航空航天大学人工智能研究所、香港中文大学MMLab以及感知与交互智能中心共同创建了OpenUAV数据集&#xff0c;首个专为现实无人机&#xff08;UAV&#xff09;视觉语言导航&#xff08;VLN&#xff09;任务设计的大型轨迹数据集&#xff0c;该数据…

2023年云南省职业院校技能大赛(网络建设与运维赛项)

2023年云南省职业院校技能大赛 “网络搭建与应用”赛项样题 2023年8月 竞赛说明 一、竞赛内容分布 “网络搭建与应用”竞赛共分三个部分&#xff0c;其中&#xff1a; 第一部分&#xff1a;网络理论测试&#xff08;100分&#xff09; 第二部分&#xff1a;网络建设与调试&…

精准管理知识资产:十大内部知识库工具全解析

在当今竞争激烈的市场环境中&#xff0c;知识资产已成为企业核心竞争力的重要组成部分。为了更好地管理和利用这些宝贵的知识资源&#xff0c;选择合适的内部知识库工具至关重要。本文将为您介绍十款高效、实用的内部知识库工具&#xff0c;帮助您实现知识资产的精准管理。 1.…

SldWorks问题 2. 矩阵相关接口使用上的失误

问题 在计算三维点在图纸&#xff08;DrawingDoc&#xff09;中的位置时&#xff0c;就是算不对&#xff0c;明明就4、5行代码&#xff0c;怎么看都是很“哇塞”的&#xff0c;毫无问题的。 但结果就是不对。 那就调试一下吧&#xff0c;调试后发现生成的矩阵很不对劲&#…

架构设计笔记-15-面向服务架构设计理论与实践

目录 知识要点 案例分析 1.微服务架构 2.微服务 3.微服务架构 4.SOA与微服务 5.基于微服务架构的系统/传统单体式系统 论文 1.论微服务架构及其应用 知识要点 服务组件体系结构&#xff08;Service Component Architecture&#xff0c;SCA&#xff09;是面向服务体系…

重头开始嵌入式第四十九天(Linux内核驱动 内核编译 向内核添加新文件)

目录 内核编译&#xff1a; 什么是uImage&#xff1f; 一、产生背景 二、主要特点 三、使用方式 uImage与zImage与Image的区别&#xff1f; 向内核添加新驱动文件&#xff1a; 内核编译&#xff1a; 什么是uImage&#xff1f; uImage 是一种用于嵌入式系统的 Linux 内核…

windows安装deepspeed setup.py 207行找不到文件

一直报莫名奇妙的错误&#xff0c;查了半天也没查到 去看了一下源码&#xff0c;需要安装git&#xff0c;我没有安装 git命令获得信息也没啥用 直接注释掉 成功运行

高效管理知识资产:十大内部知识库软件一览

在当今竞争激烈的市场环境中&#xff0c;知识资产已成为企业核心竞争力的重要组成部分。为了更好地管理和利用这些宝贵的知识资源&#xff0c;选择合适的内部知识库工具至关重要。本文将为您介绍十款高效、实用的内部知识库工具&#xff0c;帮助您实现知识资产的精准管理。 1.…

【argparse】 菜鸟实用教程指南

文章目录 0. 引言1. argparse简介2. argparse的使用3. 实例操作4. 代码运行4.1 命令行执行4.1 IDE执行 5. 总结 0. 引言 在深度学习的过程中&#xff0c;我们常常需要操作和调参大量的参数。如果采用硬编码&#xff08;直接在代码中赋值&#xff09;的方式来设置这些参数&…

补充面试知识点

jwt鉴权 实现登录流程 jwt鉴权登录实现步骤&#xff08;JWT工具类拦截器前端配置&#xff09;——前后端鉴权方案和使用_jwtsigner-CSDN博客 就是前端每一次刷新页面的时候 都判断一下发来的请求头里边的token信息 通过token识别用户信息和登录状态也就是id 线程池的执行流程 …

【安当产品应用案例100集】022-阿里云、腾讯云、华为云等公有云上ECS服务器中数据加密保护方案

企业业务上云后&#xff0c;在云上进行数据加密保护的必要性主要体现在以下几个方面&#xff1a; 一、保护敏感数据 企业存储在云上的数据可能包含客户信息、财务数据、知识产权等敏感信息。这些数据一旦泄露或被滥用&#xff0c;将对企业造成严重的法律和道德责任问题。通过…

pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover&#xff08;悬停&#xff09; 定义&#xff1a;发起交互的对象停留在可交互对象的交互区域。例如&#xff0c;当手触摸到物品表面&#xff08;可交互区域&#xff09;时&#xff0c;视为触发了Hover。 Grab&#xff08;抓取&#xff09; 概念&#xff…

SQLServer-ASYNC_NETWORK_IO等待事件

文章目录 客户端应用程序出现问题网络问题 ASYNC_NETWORK_IO 是一种经常被DBA看到的等待类型&#xff0c;当其数值过高时可能会让人担忧&#xff0c;因为这是最难解决的等待类型之一。 需要知道的是&#xff0c;从 SQL Server 2005 开始&#xff0c;这种等待类型被命名为 ASYNC…

Android Compose使用LinearProgressIndicator绘制显示异常

使用依赖版本 androidx.compose.material3:material3:1.3.0-beta05 对应代码 LinearProgressIndicator(progress { 0.7f })直接使用上述代码绘制进度条时&#xff0c;最终显示效果如下&#xff1a; 问题原因 LinearProgressIndicator中gapSize属性表示进度和背景之前的空…

00 springboot项目创建

我们创建SpringBoot项目有两种方式: Spring Initializr spring initerzie 方式创建: 启动类, 依赖 生成,但是需要网络maven的方式 maven方式创建: 启动类, 依赖, 这些都需要手动编写,但是不需要网络 springboot系列&#xff0c;最近持续更新中&#xff0c;如需要请关注 如果…

RTSP RTP RTCP SDP基础知识

理论 流&#xff08;Streaming &#xff09; 是近年在 Internet 上出现的新概念&#xff0c;其定义非常广泛&#xff0c;主要是指通过网络传输多媒体数据的技术总称。 流式传输分为两种 顺序流式传输 (Progressive Streaming) 实时流式传输 (Real time Streaming) ​​​​​…

Mybatis全局配置介绍

【mybatis全局配置介绍】 mybatis-config.xml&#xff0c;是MyBatis的全局配置文件&#xff0c;包含全局配置信息&#xff0c;如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置&#xff0c;整个框架只需一个&#xff1b…

Go 项目如何集成类似mybatisPlus插件呢?GORM走起!!

导读&#xff1a; 在 Go 项目中&#xff0c;虽然没有像 MyBatis Plus 这样特定的 ORM 插件&#xff0c;但可以使用功能相似的 Go ORM 框架&#xff0c;比如 GORM&#xff0c;它支持链式查询、自动迁移、预加载等功能&#xff0c;与 MyBatis Plus 有相似之处。通过一些插件或扩…

【JavaEE】——TCP应答报文机制,超时重传机制

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;TCP协议&#xff08;面试重点重点&#xff09; 1&#xff1a;报头长度 2&#xff1a;…