Qt簡介、C++工程文件分離、創建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:	細節描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214380.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214380.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統的各項命令

文章目錄 Linux系統的目錄結構Linux路徑的描述方式Linux命令入門**什么是命令、命令行**Linux命令基礎格式 ls命令入門HOME目錄和工作目錄ls命令的參數和選項ls命令的 -a選項ls命令的 -l選項ls命令選項的組合使用ls選項和參數的組合使用ls命令的 -h選項 目錄切換相關命令&#…

多線程案例-阻塞隊列

阻塞隊列是什么 阻塞隊列是一種特殊的隊列.也遵循"先進先出"的原則 阻塞隊列能是一種線程安全的數據結構,并且具有以下特性: 當隊列滿的時候,繼續入隊列就會阻塞,直到有其他線程從隊列中取走元素. 當隊列空的時候,繼續出隊列也會阻塞,直到有其他線程往隊列中插入元素…

這七款網工在線畫拓撲工具,絕了!

你們好&#xff0c;我的網工朋友。 畫拓撲圖&#xff0c;絕對是網絡工程師的基操。 上次給你來了篇手把手教你繪制拓撲圖的好文&#xff0c;還沒看過的先去看啊&#xff1a;《網絡拓撲圖怎么畫最好&#xff1f;》。 關于畫拓撲的工具&#xff0c;那就多了&#xff0c;直接用…

數據結構與算法-D8D9隊列實現及應用

隊列&#xff1a;限制在兩端進行插入和刪除的線性表 允許進行存入操作的一端為“隊尾” 允許進行刪除操作的一端為“隊頭” 順序隊列 注意&#xff1a;front指向隊頭元素的位置 rear指向隊尾元素的下一個位置 實現循環隊列&#xff1a;(rear1)%N取余&#xff0c;為了區分空…

Connection refused: no further information

解決目錄 一、報錯信息二、解決方法 一、報錯信息 二、解決方法 1、報錯原因是開啟了代理&#xff0c;像AS是絕對不能開代理的。 2、設置為No proxy&#xff0c;然后Apply再選擇OK&#xff0c;重新同步。 要遠離消耗你的人和事&#xff0c;不要花費任何情緒或者精力在他們身…

unity Pc獲取本機Mac地址

1.此方法只能獲取眾多Mac中的一個 private static string GetMacAddress(){string physicalAddress "";NetworkInterface[] nice NetworkInterface.GetAllNetworkInterfaces();foreach (NetworkInterface adaper in nice){Debug.Log(adaper.Description);if (adape…

Linux網絡——高級IO

目錄 一.五種IO模型 1.阻塞式IO 2.非阻塞式IO 3.信號驅動IO 4.多路轉接IO&#xff1a; 5.異步IO 二.同步通信 vs 異步通信 三.設置非阻塞IO 1.阻塞 vs 非阻塞 2.非阻塞IO 3.實現函數SetNoBlock 四.I/O多路轉接之select 1.初識select 2.select函數原型 3.socket就緒…

UEFI下Windows10和Ubuntu22.04雙系統安裝圖解

目錄 簡介制作U盤啟動盤并從U盤啟動電腦安裝系統安裝Windows系統安裝Ubuntu 附錄雙系統時間不一致 簡介 傳統 Legacy BIOS主板下的操作系統安裝可參考本人博客 U盤系統盤制作與系統安裝&#xff08;詳細圖解&#xff09; &#xff0c;本文介紹UEFI主板下的雙系統安裝&#xff…

手把手教你在GPU T4卡上安裝硬解環境+編譯硬解的ffmpeg

系列文章目錄 文章目錄 系列文章目錄前言一、NVDIA環境軟件安裝二、FFMPEG編譯過程總結前言 通常開發流媒體服務,經常需要ffmpeg支持硬解解碼功能,即常見的GPU解碼,如cuda解碼等。下面主要講解在全新的環境中怎么安裝nvidia的環境與編譯ffmpeg的過程。 運行環境Centos7.5 G…

解決 Element-ui中 表格(Table)使用 v-if 條件切換后,表格的列的篩選不顯示了

解決方法 在每個需要使用 v-if 或 v-else 的 el-table-column 上增加 key 作為唯一標識&#xff0c;這樣渲染的時候就不會因為復用原則導致列數據混亂了。關于key值&#xff0c;一般習慣使用字段名&#xff0c;也可隨機生成一個值&#xff0c;只要具有唯一性就可以。

如何快速上手不熟悉的庫

首先需要一個編輯器vscode或者pycharm 然后&#xff0c;不要傻乎乎的自己急著去看代碼。 先看有沒有文檔和使用手冊&#xff0c;一般都有一個quick_start.md文件或者其他的.md文件。 然后&#xff0c;還是不急著看代碼&#xff0c;先看代碼的注釋。 比如我現在要從這里找到…

Java王者榮耀火柴人

主要功能 鍵盤W,A,S,D鍵&#xff1a;控制玩家上下左右移動。按鈕一&#xff1a;控制英雄發射一個矩形攻擊紅方小兵。按鈕控制英雄發射魅惑技能&#xff0c;傷害小兵并讓小兵停止移動。技能三&#xff1a;攻擊多個敵人并讓小兵停止移動。普攻&#xff1a;對小兵造成基礎傷害。小…

LVGL——按鈕部件

目錄 一、組成部分 二、按鈕部件操作 1、創建 2、設置樣式 3、添加事件 4、代碼例程 三、按鈕部件案例 一、組成部分 主體&#xff08;LV_PART_MAIN&#xff09; 二、按鈕部件操作 1、創建 lv_obj_t *btn lv_btn_create( parent );2、設置樣式 lv_obj_set_siz…

nginx配置自動壓縮-gzip壓縮

1.nginx配置文件 server里添加gzip配置信息。 重啟nginx服務 對比效果&#xff1a;上圖是沒有開啟gzip自動壓縮&#xff0c;總共資源是1.3M&#xff0c;傳輸1.3MB&#xff0c;下圖是開啟gzip壓縮&#xff0c;總共資源是1.3M&#xff0c;傳輸了973KB。

Axure簡單安裝與入門

目錄 一.Axure簡介 二.應用場景 三.安裝與漢化 3.1.安裝 3.2.漢化 四. 入門 4.1.復制、剪切及粘貼區域 4.2.選擇模式 4.3. 插入形狀 4.4.預覽、共享 感謝大家觀看&#xff01;希望能幫到你哦&#xff01;&#xff01;&#xff01; 一.Axure簡介 Axure RP是一款專業的原型…

四種數據庫執行腳本文件導入數據的方式

執行腳本文件的方式 Mysql mysql執行sql腳本文件的方法&#xff1a; 1、在命令行輸入mysql -uroot -h10.235.5.55 -p’123456’ -P3306 < F:\hello\niuzi.sql 2、在命令行輸入【source F:\hello\niuzi.sql】 mysql -uroot -h10.235.5.55 -p’123456’ -P3306 -e "sou…

HarmonyOS4.0從零開始的開發教程10管理組件狀態

HarmonyOS&#xff08;八&#xff09;管理組件狀態 概述 在應用中&#xff0c;界面通常都是動態的。如圖1所示&#xff0c;在子目標列表中&#xff0c;當用戶點擊目標一&#xff0c;目標一會呈現展開狀態&#xff0c;再次點擊目標一&#xff0c;目標一呈現收起狀態。界面會根…

ERROR: [BD 41-237] Bus Interface property FREQ_HZ does not match between

在自定義IP出現以上錯誤時可以通過雙擊模塊clk屬性 如果是灰色無法二次編輯時&#xff0c;在封裝IP時&#xff0c;選擇以下菜單

復雜sql分析 以及 索引合并

復雜sql分析 簡單的sql語句我們很簡單的就可以分析出來它的執行計劃&#xff0c;但是復雜的sql呢。例如 SELECT * FROM single_table WHERE(key1 > xyz AND key2 748 ) OR(key1 < abc AND key1 > lmn) OR(key1 LIKE %suf AND key1 > zzz AND (key2 < 8000 OR…