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

news2024/11/27 18:46:44

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:	细节描述

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

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

相关文章

VisualStudio反汇编功能使用

VisualStudio反汇编功能使用 使用方法 到达断点时&#xff1a;CtrlK&#xff08;松开&#xff09;G&#xff08;后按&#xff09;唤出反汇编界面&#xff0c;就可以看到当前代码对应的汇编语言了 注意&#xff1a;进入反汇编窗口后可以F10单次调试一条汇编指令 其他&#…

3.添加与删除字段

添加字段与删除字段 1.添加字段 因为甲方的业务需求是不停变化的&#xff0c;所以在数据库操作中&#xff0c;添加字段可是常有的事。一个完整的字段包括&#xff1a;字段名、数据类型和完整性约束。 语法规则为&#xff1a; ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条…

SPECPOWER2008

一、前言# 1、软件说明# 官网&#xff1a;SERT套件用户指南2.0.5SPECpower介绍SPEC基准及工具SPECpower_ssj2008测试结果SPECpower_ssj2008-Design_ccs - SPEC# SPEC&#xff08;the Standard Performance Evaluation Corporation&#xff09;是一个由计算机硬件厂商、软件公…

JPA对数据库修改注意点

同一事务中获取不到修改数据 spring-boot-starter-parent版本2.7.12 Dao Query(value "select * from inventory_list where id in (?1) order by id desc",nativeQuery true) List<InventoryListEntity> getByIds(List<Integer> idList);Modifyin…

openharmony 开发环境搭建和系统应用编译傻瓜教程

一、DevEco Studio 安装 当前下载版本有两个&#xff0c;由于低版本配置会有各种问题&#xff0c;我选择高版本安装 低版本下载链接 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 高版本下载链接 OpenAtom OpenHarmony 解压后安装 双击安装 安装配置 二、创建测…

字符串指令集

字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time 使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是…

vue实现可拖拽列表

直接上代码 <!-- vue实现可拖拽列表 --> <template><div><button click"logcolig">打印数据</button><TransitionGroup name"list" tag"div" class"container"><divclass"item"v-f…

『PyTorch学习笔记』如何快速下载huggingface模型/数据—全方法总结

如何快速下载huggingface模型/数据—全方法总结 文章目录 一. 如何快速下载huggingface大模型1.1. IDM(Windows)下载安装连接1.2. 推荐 huggingface 镜像站1.3. 管理huggingface_hub cache-system(缓存系统) 二. 参考文献 一. 如何快速下载huggingface大模型 推荐 huggingface…

0013Java程序设计-基于Vue的上课签到系统的设计与实现

文章目录 **摘 要**目录系统设计4.2学生签到4.3 签到信息列表4.4 用户信息管理5.1系统登录5.1.1 登录5.1.2 清除用户登记记录5.1.3 登录拦截 5.2用户管理5.2.2 用户添加5.2.3 用户编辑5.2.4 用户删除5.2.5 用户分页 5.3签到信息5.3.1签到信息列表 5.4学生签到5.4.1学生签到 开发…

智能运维相关算法总结

概念&#xff1a; 智能运维&#xff08;AIOps&#xff09;是基于已有的运维数据&#xff08;日志、监控信息 、应用信息&#xff09;并通过机器学习的方法来进一步解决自动化运维没办法解决的问题&#xff0c;其核心是机器学习和大数据平台。 目标&#xff1a; 事前预警&…

ssh免密登录gitee

文章目录 一、简介二、实现流程1. 生成公钥和私钥 2、在Gitee上创建仓库3、GoLand的连接Gitee4、上传 实现本机与Gitee码云之间的免密码登录&#xff0c;通过SSH协议&#xff0c;用于通过Git与远程仓库进行通信&#xff0c;将本地仓库推送到远程仓库 参考&#xff1a;gitee git…

043:vue项目一直出现 sockjs-node/info?t=XX的解决办法

第043个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

从根上理解elasticsearch(lucene)查询原理(1)-lucece查询逻辑介绍

大家好&#xff0c;我是蓝胖子&#xff0c;最近在做一些elasticsearch 慢查询优化的事情&#xff0c;通常用分析elasticsearch 慢查询的时候可以通过profile api 去分析&#xff0c;分析结果显示的底层lucene在搜索过程中使用到的函数调用。所以要想彻底弄懂elasticsearch慢查询…

[JSMSA_CTF] 2023年12月练习题 pwn

一开始没给附件&#xff0c;还以为是3个盲pwn结果&#xff0c;pwn了一晚上没出来&#xff0c;今天看已经有附件了。 pwn1 在init_0里使用mallopt(1,0) 设置global_max_fast0 任何块释放都会进入unsort在free函数里没有清理指针&#xff0c;有UAF将v6:0x100清0&#xff0c;便于…

ResNeXt(2017)

文章目录 Abstract1. Introductionformer workour work 2. Related Work多分支卷积网络分组卷积压缩卷积网络Ensembling 3. Method3.1. Template3.2. Revisiting Simple Neurons3.3. Aggregated Transformations3.4. Model Capacity 4. Experiment 原文地址 源代码 Abstract 我…

vuepress-----18、图片缩放

图片引入两种方式 地址 # 图片缩放插件 # 实战 md文件引入图片 <img class"zoom-custom-imgs" :src"$withBase(/favicon.ico)" alt"favicon">安装配置插件 vuepress/medium-zoom: {selector: img.zoom-custom-imgs,},效果展示

LVS-DR+Keepalived+动静分离实验

架构图 解释一下架构&#xff0c;大概就是用Keepalived实现两台DR服务器的LVS负载均衡&#xff0c;然后后端服务器是两台Nginx服务器两台Tomcat服务器并且实现动静分离这个实验其实就是把 LVS-DRKeepalived 和 动静分离 给拼起来&#xff0c;真的是拼起来&#xff0c;两个部分…

MVCC是什么

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

关于什么是 JVM

关于什么是 JVM&#xff0c;看看普通⼈和⾼⼿的回答。 普通人 JVM 就是 Java 虚拟机&#xff0c;是⽤来运⾏我们平时所写的 Java 代码的。优点是它会 ⾃动进⾏内存管理和垃圾回收&#xff0c;缺点是⼀旦发⽣问题&#xff0c;要是不了解 JVM 的运⾏ 机制&#xff0c; 就很难…

网工内推 | 外企、合资公司急招网工,国内外旅游,健身年卡

01 深圳市耐施菲信息科技有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责项目的计划、实施、过程管控、项目验收等工作&#xff1b; 2、负责大型项目设备实施、安装调试等售后维护工作&#xff1b; 3、分析、设计网络拓扑结构、配置H3C、华为等交换机…