零基礎學QT、C++(一)安裝QT

目錄

如何快速學習QT、C++呢?

一、編譯器、項目構建工具

1、編譯器(介紹2款)

2、項目構建工具

二、安裝QT

1、下載QT安裝包

2、運行安裝包

3、運行QT creator

4、導入開源項目

總結

閑談

如何快速學習QT、C++呢?

那就是項目驅動法,搞一個感興趣的項目來玩玩!

這個QT項目,每個組件都是作者手寫的,俺想用來做一個簡單數據管理系統玩玩

https://github.com/Liniyous/ElaWidgetTools

所以,當務之急,就需要搭建一個QT、C++的運行環境,然后運行這個項目

一、編譯器、項目構建工具

在搭建之前呢,我就被各種編譯器,還有那個cmake搞得暈頭轉向

1、編譯器(介紹2款)

MSVC(Microsoft Visual C++)微軟提供的一款強大的 C++ 編譯器

MinGW(Minimalist GNU For Window)是個C/C++編譯器

(我這里選擇的是MSVC)反正能用就行~

他們的區別,就自行問ai

2、項目構建工具

Cmake就是一個項目構建工具(和Maven類似)

不過Maven還提供了第三方庫的管理,下載,安裝,刪除等等

下圖是Maven的項目配置文件pom.xml

下圖是Cmakelist.txt文件

特性CMakeMaven
主要功能項目構建工具,生成構建系統(如 Makefile 或 Visual Studio 項目)項目構建工具 + 依賴管理工具
配置文件CMakeLists.txtpom.xml
依賴管理不直接提供依賴管理,需要手動或通過 find_package 查找庫提供強大的依賴管理,自動下載和安裝第三方庫
跨平臺支持支持跨平臺(Windows、Linux、macOS 等)主要針對 Java 項目,跨平臺性依賴于 JVM
構建系統生成生成 Makefile、Ninja、Visual Studio 項目等不生成構建系統,直接調用編譯器(如 javac)
語言支持主要用于 C/C++,但也支持其他語言(如 Fortran)主要用于 Java,但也支持其他語言(通過插件)
插件生態插件較少,功能相對單一插件豐富,功能強大(如編譯、測試、打包等)

二、安裝QT

QT的安裝面板會讓我們選擇安裝MinGW編譯器,也可以選擇安裝MSVC編譯器

還會有qmake和Cmake的構建工具,這些我們都可以在面板里面自行選擇

總之,QT面板已經為我們做了很多東西,我們只需要點點點就可以了,他都會集成好的

官方下載速度有點慢,而且QT自Qt 5.15版本后不在支持離線安裝包下載(非商業版本,開源)

1、下載QT安裝包

官方下載網站:

Index of /archive/qtcreator

清華園(推薦)速度快:

https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers

2、運行安裝包

這里需要登錄,自己注冊一個就可以了,注冊過程并不復雜

就是網絡可能比較慢,耐心等待就行了,或者用用梯子

自定義安裝?Custom?Installation?(自行選擇安裝目錄)

自定義安裝?Custom?Installation?(自行選擇安裝目錄)

自定義安裝?Custom?Installation?(自行選擇安裝目錄)

跟著我的點就行了(如果后面有其他的安裝需求,可以再打開這個面板,更新組件)

跟著我的點就行了(如果后面有其他的安裝需求,可以再打開這個面板,更新組件)

跟著我的點就行了(如果后面有其他的安裝需求,可以再打開這個面板,更新組件)

  • 我這里選擇了MSVC編譯器,沒有選擇MinGW(看個人選擇吧)
  • QT版本我選擇了6.8.2
  • 還有其他那些跟我的一樣就行了

點擊【安裝】

接下來就耐心等待下載吧

如果出現彈窗(重試就行了)(期間他可能會彈出很多次,反正重試就可以了)

3、運行QT creator

我們可以創建一個項目看看

  • 這里就要選擇構建工具(我們就選擇Cmake吧)
  • Cmake和qmake的區別自行百度(或者問問ai)

創建一個項目,然后ctrl+R運行

4、導入開源項目

ElaWidgetToolshttps://github.com/Liniyous/ElaWidgetTools下載項目之后,放到一個文件夾里面

然后打開QT?creator,選擇打開項目

等待項目加載完成(下圖是加載完成后的樣子,有警告也問題不大)

加載完成后,直接ctrl+R運行(等待他編譯一會就好了)

然后,就可以開始我們的魔改啦~

總結

1、了解C++的編譯器、構建工具

2、安裝QT creator,他里面集成好了C++編譯器和構建工具

3、我們可以直接使用QT creator來運行項目,這里面還有很多豐富的示例,供我們學習

閑談

  • QT creator里面有QT文檔
  • 什么不懂搜什么
  • 不過現在有ai了,我都是ai梭哈,2333~

有什么不懂的,直接問ai,比百度來得快

  • 接下來就是快速過一遍菜鳥教程里面的C++
  • 然后開始看項目代碼
  • 把項目代碼丟給ai,讓他加上注釋
  • 對代碼有疑惑,就問他為什么這樣寫

wxWidgets是一個開源的跨平臺的C++構架庫(framework)

桌面端框架還有很多很多...

C++學起來,當初配置環境就搞得我摸不著頭腦

半天看不到 成果,心急得很!不過還好有大佬的耐心指導!

大佬b站:山岳兩茫茫的個人空間-山岳兩茫茫個人主頁-嗶哩嗶哩視頻

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

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

相關文章

STM32外設SPI FLASH應用實例

STM32外設SPI FLASH應用實例 1. 前言1.1 硬件準備1.2 軟件準備 2. 硬件連接3. 軟件實現3.1 SPI 初始化3.2 QW128 SPI FLASH 驅動3.3 乒乓存儲實現 4. 測試與驗證4.1 數據備份測試4.2 數據恢復測試 5 實例5.1 參數結構體定義5.2 存儲參數到 SPI FLASH5.3 從 SPI FLASH 讀取參數5…

Leetcode2080:區間內查詢數字的頻率

題目描述: 請你設計一個數據結構,它能求出給定子數組內一個給定值的 頻率 。 子數組中一個值的 頻率 指的是這個子數組中這個值的出現次數。 請你實現 RangeFreqQuery 類: RangeFreqQuery(int[] arr) 用下標從 0 開始的整數數組 arr 構造…

Spring Boot自動裝配:約定大于配置的魔法解密

#### 一、自動裝配的哲學思考 在傳統Spring應用中,開發者需要手動配置大量的XML或JavaConfig。Spring Boot通過自動裝配機制實現了**約定大于配置**的設計理念,其核心思想可以概括為: 1. **智能預設**:基于類路徑檢測自動配置 2…

Fiddler筆記

文章目錄 一、與F12對比二、核心作用三、原理四、配置1.Rules:2.配置證書抓取https包3.設置過濾器4、抓取App包 五、模擬弱網測試六、調試1.線上調試2.斷點調試 七、理論1.四要素2.如何定位前后端bug 注 一、與F12對比 相同點: 都可以對http和https請求進行抓包分析…

Python爬蟲-貓眼電影的影院數據

前言 本文是該專欄的第46篇,后面會持續分享python爬蟲干貨知識,記得關注。 本文筆者以貓眼電影為例子,獲取貓眼的影院相關數據。 廢話不多說,具體實現思路和詳細邏輯,筆者將在正文結合完整代碼進行詳細介紹。接下來,跟著筆者直接往下看正文詳細內容。(附帶完整代碼) …

linux筆記:shell中的while、if、for語句

在Udig軟件的啟動腳本中使用了while循環、if語句、for循環,其他內容基本都是變量的定義,所以嘗試弄懂腳本中這三部分內容,了解腳本執行過程。 (1)while循環 while do循環內容如下所示,在循環中還用了expr…

利用分治策略優化快速排序

1. 基本思想 分治快速排序(Quick Sort)是一種基于分治法的排序算法,采用遞歸的方式將一個數組分割成小的子數組,并通過交換元素來使得每個子數組元素按照特定順序排列,最終將整個數組排序。 快速排序的基本步驟&#…

從零到一實現微信小程序計劃時鐘:完整教程

在本教程中,我們將一起實現一個微信小程序——計劃時鐘。這個小程序的核心功能是幫助用戶添加任務、設置任務的時間范圍,并且能夠刪除和查看已添加的任務。通過以下步驟,我們將帶你從零開始實現一個具有基本功能的微信小程序計劃時鐘。 項目…

idea日常報錯之UTF-8不可映射的字符

目錄 一、UTF-8不可映射的字符的解決 1、出現這種報錯的情形 2、具體解決辦法 前言: 在我們日常代碼編寫的時候可能會遇到各式各樣的錯誤,有時候并不是你改動了代碼,而是莫名其妙就出現的報錯,今天我就遇到一個在maven編譯的時候…

人工智能技術-基于長短期記憶(LSTM)網絡在交通流量預測中的應用

人工智能技術-基于長短期記憶(LSTM)網絡在交通流量預測中的應用 基于人工智能的智能交通管理系統 隨著城市化進程的加快,交通問題日益嚴峻。為了解決交通擁堵、減少交通事故、提高交通管理效率,人工智能(AI&#xff…

HTTP FTP SMTP TELNET 應用協議

1. 標準和非標準的應用協議 標準應用協議: 由標準化組織(如 IETF,Internet Engineering Task Force)制定和維護,具有廣泛的通用性和互操作性。這些協議遵循嚴格的規范和標準,不同的實現之間可以很好地進行…

Matlab離線安裝硬件支持包的方法

想安裝支持樹莓派的包,但是發現通過matlab安裝需要續訂維護服務 可以通過離線的方式安裝。 1. 下載SupportSoftwareDownloader Support Software Downloader - MATLAB & Simulink 登錄賬號 選擇對應的版本 2. 選擇要安裝的包 3.將下載的包copy到安裝目錄下 …

Django REST Framework (DRF) 中用于構建 API 視圖類解析

Django REST Framework (DRF) 提供了豐富的視圖類,用于構建 API 視圖。這些視圖類可以分為以下幾類: 1. 基礎視圖類 這些是 DRF 中最基礎的視圖類,通常用于實現自定義邏輯。 常用類 APIView: 最基本的視圖類,所有其…

MyBatis攔截器終極指南:從原理到企業級實戰

在本篇文章中,我們將深入了解如何編寫一個 MyBatis 攔截器,并通過一個示例來展示如何在執行數據庫操作(如插入或更新)時,自動填充某些字段(例如 createdBy 和 updatedBy)信息。本文將詳細講解攔…

137,【4】 buuctf web [SCTF2019]Flag Shop

進入靶場 都點擊看看 發現點擊work會增加¥ 但肯定不能一直點下去 抓包看看 這看起來是一個 JWT(JSON Web Token)字符串。JWT 通常由三部分組成,通過點(.)分隔,分別是頭部(Header&…

twisted實現MMORPG 游戲數據庫操作封裝設計與實現

在設計 MMORPG(大規模多人在線角色扮演游戲)時,數據庫系統是游戲架構中至關重要的一部分。數據庫不僅承擔了游戲中各種數據(如玩家數據、物品數據、游戲世界狀態等)的存儲和管理任務,還必須高效地支持并發訪…

【R語言】聚類分析

聚類分析是一種常用的無監督學習方法,是將所觀測的事物或者指標進行分類的一種統計分析方法,其目的是通過辨認在某些特征上相似的事物,并將它們分成各種類別。R語言提供了多種聚類分析的方法和包。 方法優點缺點適用場景K-means計算效率高需…

超全Deepseek資料包,deepseek下載安裝部署提示詞及本地部署指南介紹

該資料包涵蓋了DeepSeek模型的下載、安裝、部署以及本地運行的詳細指南,適合希望在本地環境中高效運行DeepSeek模型的用戶。資料包不僅包括基礎的安裝步驟,還提供了68G多套獨立部署視頻教程教程,針對不同硬件配置的模型選擇建議,以…

Java Spring boot 篇:常用注解

Configuration 作用 Configuration 注解的核心作用是把一個類標記為 Spring 應用上下文里的配置類。配置類就像一個 Java 版的 XML 配置文件,能夠在其中定義 Bean 定義和 Bean 之間的依賴關系。當 Spring 容器啟動時,會掃描這些配置類,解析其…

在 Ubuntu 20.04 為 Clash Verge AppImage 創建桌面圖標教程

在 Ubuntu 20.04 為 AppImage 創建桌面圖標教程 一、準備工作 確保你已經下載了 xxxx.AppImage 文件,并且知道它所在的具體路徑。同時,你可以準備一個合適的圖標文件(.png 格式)用于代表該應用程序,如果沒有合適的圖…