Qt简介、工程文件分离、创建Qt工程、Qt的帮助文档

QT 简介

在这里插入图片描述

core:核心模块,非图形的接口类,为其它模块提供支持
gui:图形用户接口,qt5之前
widgets:图形界面相关的类模块 qt5之后的
database:数据库模块
network:网络模块

QT 特性

开源

(裁剪、参考代码、学习)
优良的跨平台特性
Qt 支持下列操作系统:Windows、Linux、MacOS、android 等等。节约人力成本。
类比 Linux 支持 intel X86、ARM、MIPS 等。

面向对象

Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。

丰富的API

Qt 包括多达 500 个以上的 C++类,还替供基于模板的 collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。

大量的开发文档

易用的开发环境

Qt 嵌入式官方案例(👈 安全链接,放心跳转)

Qt 环境安装、搭建

下载

(👆 Qt Creator下载页面)

windows 版本选择 mingw 版本,集成安装包,只安装 mingw 编译器即可。
linux 的包以 run 后缀结尾。
mac 的包以 dmg 后缀结尾。

在这里插入图片描述

版本查看

Qt creator 软件的版本:3.0.1
SDK的版本:5.2.1
在这里插入图片描述

编码格式

需要改回 utf-8,否则会导致界面中文显示不正常。
在这里插入图片描述

C++工程文件分离

写一个 Person 类,有 name 和 age 两个成员,构造方法中赋默认属性,再提供对外的方法进行设置和输出。
写一个 Student 类,继承自 Person 类,增加学号 id 和成绩 score 两个属性,并能提供方法来设置这两个属性。构造方法中要能设置默认的所有属性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

person.h

#ifndef PERSON_H
#define PERSON_H

#include <iostream>
using namespace std;

class Person
{
protected:
    string name;
    int age;
public:
    Person();
    void setProperty(string name, int age);
    virtual void getProperty();
};

#endif // PERSON_H

person.cpp

#include "person.h"

Person::Person()
{
    name = "Klaus";
    age = 23;
}

void Person::setProperty(string name, int age)
{
    this->name = name;
    this->age = age;
}

void Person::getProperty()
{
    cout << "Name: " << name << endl;
    cout << "Age: " << age << endl;
}

student.h

#ifndef STUDENT_H
#define STUDENT_H

#include "person.h"

class Student : public Person
{
    string id;
    float score;
public:
    Student();
    void setProperty(string name, int age, string id, float score);
    virtual void getProperty();
};

#endif // STUDENT_H

student.cpp

#include "student.h"

Student::Student()
{
    id = "2023052106";
    score = 92;
}

void Student::setProperty(string name, int age, string id, float score)
{
    this->name = name;
    this->age = age;
    this->id = id;
    this->score = score;
}

void Student::getProperty()
{
    cout << "Name: " << name << endl;
    cout << "Age: " << age << endl;
    cout << "Id: " << id << endl;
    cout << "Score: " << score << endl;
}

main.cpp

#include "student.h"

int main()
{
    Person().getProperty();
    Person per;
    per.setProperty("Kol", 21);
    per.getProperty();
    cout << "--------------------" << endl;

    Student().getProperty();
    Student *stu = new Student;
    stu->setProperty("Kol", 21, "2023052202", 96);
    stu->getProperty();
    cout << "--------------------" << endl;

    // 多态:父类的指针或者引用指向子类,可以呈现子类的特性
    Person *p = new Student;
    p->getProperty();
    p->Person::getProperty();

    return 0;
}

在这里插入图片描述

创建 QT 的工程

在这里插入图片描述
在这里插入图片描述

xxx.pro

#-------------------------------------------------
#
# Project created by QtCreator 2023-09-26T11:20:06
#
#-------------------------------------------------

#工程所需要的模块名
QT       += core gui

#如果QT版本号大于5,那么需要加入widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

#生成的执行程序的名字
TARGET = qt_test
TEMPLATE = app

#指定工程包含的源文件
SOURCES += main.cpp\
        widget.cpp

#指定工程包含的头文件
HEADERS  += widget.h

main.cpp

在这里插入图片描述

widget.h

在这里插入图片描述

注意

项目构建完成后,目录中会有一个 xxx.pro.user 的文件,这个文件存储的是个人配置,比如个人构建路径、编译器路径等等。所以如果项目是从别人那里拷贝的,必须先删除此文件再打开项目。在打开项目之前,就需要删掉 user 配置文件
在这里插入图片描述
在这里插入图片描述

QT 帮助文档

QT 所有的类 都以 Q 打头。

打开帮助文档方法

1、直接点 creator 里的帮助选项;

在这里插入图片描述

2、开始菜单输入 ass,打开 assistant 即可;

在这里插入图片描述
在这里插入图片描述

3、光标定位到某个查找类或对象,按两次 F1 键

在这里插入图片描述

帮助文档的结构

头文件、模块需求、继承关系

以 QLabel 为例:

Header:		#include \<QLabel>   		// 头文件
qmake:		QT += widgets   			// 加载模块
Inherits:	QFrame   					// 父类是谁

目录

Properties:			类特性,不能直接修改
Public Functions:		公有方法,重点关注
Public Slots:			公有槽函数,重点关注
Signals:				信号,重点关注
Detailed Description:	细节描述

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

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

相关文章

土壤水分传感器土壤体积含水率含量监测仪器

产品概述 外型小巧轻便&#xff0c;便于携带和连接。 土壤水分传感器由电源模块、变送模块、漂零及温度补偿模块、数据处理模块等组成。传感器内置信号采样及放大、漂零及温度补偿功能&#xff0c;用户接口简洁、方便。 功能特点 ◆本传感器体积小巧化设计&#xff0c;测量…

Sam Altman当选“TIME时代周刊”2023年度最佳CEO!还有梅西、Taylor Swift当选...

TIME时代周刊昨日在官网公布了2023年最佳CEO—— Sam Altman当选! 此外&#xff0c;Taylor Swift当选年度最佳人物&#xff0c;梅西当选年度最佳运动员。 Sam Altman的当选可谓是实至名归&#xff01;没有谁能比火爆全球的ChatGPT背后&#xff0c;OpenAI的CEO更“成功”了。 …

手把手教你写 Compose 动画 -- 讲的不能再细的 AnimationSpec 动画规范

前面我们聊过 animateDpAsState 和 Animatable 两种动画 API 的用法&#xff0c;但只是简单了解了&#xff0c;这两个函数内部都有一个共同的核心参数&#xff1a;AnimationSpec。 Composable fun animateDpAsState(targetValue: Dp,animationSpec: AnimationSpec<Dp> …

代码随想录算法训练营第45天| 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数

JAVA代码编写 70. 爬楼梯&#xff08;进阶版) 卡码网&#xff1a;57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f…

卷王开启验证码后无法登陆问题解决

问题描述 使用 docker 部署&#xff0c;后台设置开启验证&#xff0c;重启服务器之后&#xff0c;docker重启&#xff0c;再次访问系统&#xff0c;验证码获取失败&#xff0c;导致无法进行验证&#xff0c;也就无法登陆系统。 如果不了解卷王的&#xff0c;可以去官网看下。…

【K8S】微服务不香了?单体化改造悄然兴起!!

微服务一直以来是服务治理的基本盘之一,落地到云原生上,往往是每个 K8s pods 部署一个服务,独立迭代、独立运维。 但是在快速部署的时候,有时候,我们可能需要一些宏服务的优势。有没有一种方法,能够 “既要又要” 呢?本文基于 tRPC-Go 服务,提出并最终实践了一种经验证…

医学图像数据处理流程以及遇到的问题

数据总目录&#xff1a; /home/bavon/datasets/wsi/hsil /home/bavon/datasets/wsi/lsil 1 规整文件命名以及xml拷贝 data_prepare.py 的 align_xml_svs 方法 if __name__ __main__: file_path "/home/bavon/datasets/wsi/lsil"# align_xml_svs(file_path) # b…

程序员的养生指南(生命诚可贵,一人永流传!珍惜生命,从你我做起)

作为程序员&#xff0c;我们经常需要长时间坐在电脑前工作&#xff0c;这对我们的身体健康造成了很大的影响。为了保持健康&#xff0c;我们需要采取一些养生措施来延寿。下面是我个人的一些养生经验和建议&#xff0c;希望能对大家有所帮助。 1、合理安排工作时间&#xff1a;…

Bert-vits2新版本V2.1英文模型本地训练以及中英文混合推理(mix)

中英文混合输出是文本转语音(TTS)项目中很常见的需求场景&#xff0c;尤其在技术文章或者技术视频领域里&#xff0c;其中文文本中一定会夹杂着海量的英文单词&#xff0c;我们当然不希望AI口播只会念中文&#xff0c;Bert-vits2老版本(2.0以下版本)并不支持英文训练和推理&…

多功能智能遥测终端机 5G/4G+北斗多信道 视频采集传输

计讯物联多功能智能遥测终端机&#xff0c;全网通5G/4G无线通信、弱信号地区北斗通信&#xff0c;多信道自动切换保障通信联通&#xff0c;丰富网络接口及行业应用接口&#xff0c;支持水利、环保、工业传感器、控制终端、智能终端接入&#xff0c;模拟量/数字量/信号量采集&am…

一文详解Java反射

文章目录 反射是什么&#xff1f;反射的作用所有方法汇总一、加载Class对象二、加载类的构造器对象三、加载类的成员变量四、加载类的成员方法 反射是什么&#xff1f; 反射就是&#xff1a;加载类&#xff0c;并允许以编程的方式解剖类中的某个成分&#xff08;成员变量&#…

ambari hive on Tez引擎一直卡住

hive on tez使用./bin/hive启动后一直卡住&#xff0c;无法进入命令行 使用TEZ作为Hive默认执行引擎时&#xff0c;需要在调用Hive CLI的时候启动YARN应用&#xff0c;预分配资源&#xff0c;这需要花一些时间&#xff0c;而使用MapReduce作为执行引擎时是在执行语句的时候才会…

微信小程序UI自动化测试实践:Minium+PageObject

小程序架构上分为渲染层和逻辑层&#xff0c;尽管各平台的运行环境十分相似&#xff0c;但是还是有些许的区别&#xff08;如下图&#xff09;&#xff0c;比如说JavaScript 语法和 API 支持不一致&#xff0c;WXSS 渲染表现也有不同&#xff0c;所以不论是手工测试&#xff0c…

Spingboot3详解(全网最详细,新建springboot项目并详解各种组件的用法)

一.Spring Initializr创建向导 1.新建一个空项目 2.在新创建的空项目里&#xff0c;新建Module 3. 选择Spring Initializr 4.选择Spring Boot的版本3以上 5.创建好的一个项目结构 controller包是自己创建的 6.项目结构分析 spingboot主程序 package com.example.boot;impor…

使用hutool工具生成非对称加密公私密钥以及使用案例

1.导入hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version></dependency>2.直接复制代码 package com.common.utils;import cn.hutool.core.codec.Base64; i…

mac苹果电脑清除数据软件CleanMyMac X4.16

在数字时代&#xff0c;保护个人隐私变得越来越重要。当我们出售个人使用的电脑&#xff0c;亦或者离职后需要上交电脑&#xff0c;都需要对存留在电脑的个人信息做彻底的清除。随着越来越多的人选择使用苹果电脑&#xff0c;很多人想要了解苹果电脑清除数据要怎样做才是最彻底…

优秀软件测试工程师必备的“8个能力”

首先要说&#xff0c;做软件测试不难&#xff0c;难的是做好软件测试。 结合自己这些年的工作经验&#xff0c;自己也总结出来8个方面的能力&#xff0c;可能有些方面感觉要求暂时还达不到&#xff0c;但这些确实是做软件测试工作所必备的能力&#xff0c;掌握了这8个方面的能力…

Python---time库

目录 时间获取 时间格式化 程序计时 time库包含三类函数&#xff1a; 时间获取&#xff1a;time() ctime() gmtime() 时间格式化&#xff1a;strtime() strptime() 程序计时&#xff1a;sleep() perf_counter() 下面逐一介绍&#…

【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?

记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目&#xff0c;之后就被GitHub 要求强制开启 2FA 双重身份验证了&#xff0c;一拖再拖&#xff0c;再过几天帐户操作将受到限制了&#xff0c;只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…

Html5响应式全开源网站建站源码系统 附带完整的搭建教程

Html5响应式全开源网站建站源码系统是基于Html5、CSS3和JavaScript等技术开发的全开源网站建站系统。它旨在为初学者和小型企业提供一套快速、简便的网站建设解决方案。该系统采用响应式设计&#xff0c;可以自适应不同设备的屏幕大小&#xff0c;提高用户体验。同时&#xff0…