一文詳解QT環境搭建:Windows使用CLion配置QT開發環境

在當今的軟件開發領域,跨平臺應用的需求日益增長,Qt作為一款流行的C++圖形用戶界面庫,因其強大的功能和易用性而備受開發者青睞。與此同時,CLion作為一款專為C/C++打造的強大IDE,提供了豐富的特性和高效的編碼體驗。本文將指導您如何在Windows環境配置CLionQt的集成環境,使您能夠快速開始Qt應用程序的開發。

一、Qt MinGW組件

首先,需要確認您的本地Windows電腦上是否已經安裝了Qt MinGW相關組件。若尚未安裝,請按照以下步驟操作:

1.在您的本地電腦Qt的安裝目錄下,通過如下命令行運行如下命令以喚起Qt維護工具。為了加速下載過程,建議使用國內鏡像源。

// 使用 中國科學技術大學 鏡像喚起 Qt維護工具
.\MaintenanceTool.exe --mirror https://mirrors.ustc.edu.cn/qtproject/
// 使用 清華大學 鏡像喚起 Qt維護工具
.\MaintenanceTool.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/

國內鏡像喚起 Qt維護工具

  1. 按照維護工具提供的界面指引,確保已安裝所有必需的Qt版本及組件。請參照以下三張圖核對組件安裝情況

Qt組件安裝確認01

Qt組件安裝確認02

Qt組件安裝確認03

二、Qt環境變量

為了保證Qt工具鏈能夠在命令行中被正確識別,請確保您的系統環境變量中包含了Qt的安裝路徑。這一步驟對于后續的項目創建至關重要。

Qt環境變量

三、Clion新建Qt項目

當一切準備就緒后,打開CLion,并根據提示新建一個Qt Widgets Executable項目。

3.1 新建Qt項目

打開CLion,新建Qt Widgets Executable項目:

新建Qt Widgets Executable項目

3.2 配置mingw工具

完成相關創建后,需完成Clion工具鏈環境配置后,才能完成程序的編譯運行。

配置工具鏈:操作步驟File——>Setting——>Toolchains,配置Toolset項為Qt路徑下mingw工具。
配置工具鏈

3.3 修改main.cpp

  1. 修改main.cpp
#include "mainwindow.h"  #include <QApplication>  int main(int argc, char *argv[])  
{  QApplication a(argc, argv);  MainWindow w;  w.show();  return a.exec();  
}
  1. 添加mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralwidget"><widget class="QWidget" name="gridLayoutWidget"><property name="geometry"><rect><x>190</x><y>80</y><width>160</width><height>80</height></rect></property><layout class="QGridLayout" name="gridLayout"/></widget></widget><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>18</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><resources/><connections/>
</ui>
  1. 添加mainwindow.h
#ifndef MAINWINDOW_H  
#define MAINWINDOW_H  #include <QMainWindow>  QT_BEGIN_NAMESPACE  
namespace Ui {  
class MainWindow;  
}  
QT_END_NAMESPACE  class MainWindow : public QMainWindow  
{  Q_OBJECT  public:  MainWindow(QWidget *parent = nullptr);  ~MainWindow();  private:  Ui::MainWindow *ui;  
};  
#endif // MAINWINDOW_H
  1. 添加mainwindow.cpp
#include "mainwindow.h"  
#include "./ui_mainwindow.h"  MainWindow::MainWindow(QWidget *parent)  : QMainWindow(parent)  , ui(new Ui::MainWindow)  
{  ui->setupUi(this);  
}  MainWindow::~MainWindow()  
{  delete ui;  
}

3.4 修改CMakeLists.txt

參照下方代碼,修改現有的CMakeLists.txt文件代碼:

# 指定 CMake 的最低版本要求為 3.23
cmake_minimum_required(VERSION 3.23.2)
# 定義項目的名稱為 "CLion_Qt_Demo"
project(CLion_Qt_Demo)# 開啟自動處理UI文件的功能,讓CMake自動將.ui文件轉換為對應的C++代碼
set(CMAKE_AUTOUIC ON)
# 開啟自動處理MOC(Meta-Object Compiler)的功能,用于處理Qt的信號槽機制相關代碼生成
set(CMAKE_AUTOMOC ON)
# 開啟自動處理RCC(Resource Compiler)的功能,用于處理資源文件(如圖片、樣式表等)
set(CMAKE_AUTORCC ON)# 設置 C++ 編譯標準為 C++17
set(CMAKE_CXX_STANDARD 17)
# 要求必須使用指定的C++標準,若不滿足則構建失敗
set(CMAKE_CXX_STANDARD_REQUIRED ON)# Qt
# 設置CMAKE_PREFIX_PATH環境變量:指向了Qt安裝目錄,用于幫助CMake找到Qt庫。
set(CMAKE_PREFIX_PATH D:/Program/Qt/6.8.1/mingw_64)
# 查找 Qt6 庫并配置其組件。這里指定了需要 Core、Gui 和 Widgets 組件,并且是必須的 (REQUIRED)。
# 如果找不到指定的組件,CMake 配置過程將會失敗。
find_package(Qt6 COMPONENTSCoreGuiWidgetsREQUIRED)# 定義項目源文件列表,包含主函數源文件、主窗口源文件、主窗口頭文件和主窗口UI文件
set(PROJECT_SOURCESmain.cppmainwindow.cppmainwindow.hmainwindow.ui)
add_executable(CLion_Qt_Demo${PROJECT_SOURCES})# 將 Qt6 的 Core、Gui 和 Widgets 庫鏈接到名為 "CLion_Qt_Demo" 的可執行文件上。
# 這使得在編譯時可以訪問 Qt 提供的功能,并且在運行時與這些庫鏈接。
target_link_libraries(CLion_Qt_DemoQt6::CoreQt6::GuiQt6::Widgets
)

3.5 運行Qt程序:

經過上述步驟,已成功的在Windows環境中配置好了CLion與Qt的開發環境。現在,可以嘗試運行一下的Qt程序,看看是否能夠正常顯示UI界面,以此驗證配置是否正確。

運行Qt程序

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

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

相關文章

【區塊鏈安全 | 第二十四篇】單位和全局可用變量(二)

文章目錄 單位和全局可用變量&#xff08;Units and Globally Available Variables&#xff09;特殊變量和函數1. 區塊和交易屬性2. ABI 編碼和解碼函數3. bytes 成員函數4. string 成員函數5. 錯誤處理6. 數學和加密函數7. 地址類型成員函數8. 與合約相關9. 類型信息 單位和全…

一種監控錄像視頻恢復的高效解決方案,從每一幀中尋找可能性

該軟件旨在恢復從監控設備中刪除或丟失的視頻。該程序經過調整以處理大多數流行供應商的閉路電視系統中使用的專有格式&#xff0c;并通過智能重建引擎進行了增強&#xff0c;能夠為監控記錄提供任何通用解決方案都無法實現的恢復結果。如果不需要持續使用該軟件&#xff0c;則…

網紅指路機器人是否支持環境監測功能?

嘿呀&#xff0c;你可知道&#xff1f;如今的叁仟網紅指路機器人那可太牛啦&#xff01;它們可不單單局限于為行人指明方向&#xff0c;還紛紛兼職當起了 “環境小衛士”&#xff0c;為咱們的城市生活注入了前所未有的超智能便利。就拿那個依托叁仟智慧桿打造的數智指路機器人來…

Navicat導出mysql數據庫表結構說明到excel、word,單表導出方式記錄

目前只找到一張一張表導出的方式 使用information_schema傳入表名查詢 字段名根據需要自行刪減&#xff0c;一般保留序號、字段名、類型、說明就行 SELECT COLUMNS.ORDINAL_POSITION AS 序號, COLUMNS.COLUMN_NAME AS 字段名, COLUMNS.COLUMN_TYPE AS 類型(長度), COLUMNS.N…

MySQL主從數據庫搭建

此方案可適用于Centos 7、OpenEuler、Ubuntu操作系統。 在國產銀河麒麟V10中,虛擬機中啟動的麒麟系統使用當前方案并未遇到問題,但是在服務器上安裝時,執行到初始化時出現了找不到依賴問題(目前已解決安裝問題),后續我會繼續更新該問題解決方案。 1. 創建主、從安裝目錄…

`git commit --amend` 詳解:修改提交記錄的正確方式

文章目錄 git commit --amend 詳解&#xff1a;修改提交記錄的正確方式1. 修改提交信息2. 補充遺漏的文件3. 結合 --amend 進行交互式修改4. 已推送提交的修改總結 git commit --amend 詳解&#xff1a;修改提交記錄的正確方式 git commit --amend 用于修改最近一次的提交&…

為什么package.json里的npm和npm -v版本不一致?

這個情況出現是因為package.json里的 npm 版本和系統實際使用的 npm 版本是兩個不同的概念。讓我來解釋一下&#xff1a; 原因解釋 全局 npm vs 項目依賴&#xff1a; npm -v顯示的是系統全局安裝的 npm 版本&#xff08;位于/usr/bin/npm或類似路徑&#xff09;package.jso…

python系統之綜合案例:用python打造智能詩詞生成助手

不為失敗找理由&#xff0c;只為成功找方法。所有的不甘&#xff0c;因為還心存夢想&#xff0c;所以在你放棄之前&#xff0c;好好拼一把&#xff0c;只怕心老&#xff0c;不怕路長。 python系列之綜合案例 前言一、項目描述二、項目需求三、 項目實現1、開發準備2、代碼實現 …

Java常用工具算法-1--哈希算法(MD5,SHA家族,SHA-256,BLAKE2)

1、概述 哈希算法&#xff08;Hash Algorithm&#xff09;&#xff0c;又稱散列算法&#xff0c;是一種將任意長度的輸入數據&#xff08;明文&#xff09;轉換為固定長度的輸出&#xff08;哈希值/摘要&#xff09;的數學算法。 哈希值通常被稱為摘要&#xff08;Digest&…

OpenMCU(五):STM32F103時鐘樹初始化分析

概述 本文主要描述了STM32F103初始化過程系統時鐘的初始化,主要描述了系統時鐘的初始化&#xff0c;AHB總線時鐘&#xff0c;APB總線時鐘等的初始化。 硬件板卡3d圖 時鐘樹 STM32F103的時鐘樹&#xff0c;如下所示: 時鐘源選擇 從STM32F103的時鐘樹框圖&#xff0c;我們可以…

【qt】文件類(QFile)

很高興你能看到這篇文章&#xff0c;同時我的語雀文檔也更新了許多嵌入式系列的學習筆記希望能幫到你 &#xff1a; https://www.yuque.com/alive-m4b9n 目錄 QFile 主要功能QFile 操作步驟QFile 其他常用函數案例分析及實現功能一實現&#xff1a;打開文件并顯示功能二實現:另…

基于AT89C52單片機的輪胎壓力監測系統

點擊鏈接獲取Keil源碼與Project Backups仿真圖&#xff1a; https://download.csdn.net/download/qq_64505944/90545655?spm1001.2014.3001.5503 功能介紹&#xff1a; 采用MPX4115壓力傳感器進行輪胎壓力檢測&#xff1b;使用LCD液晶顯示器顯示輪胎壓力&#xff1b;若壓力過…

shell腳本--MySQL簡單調用

實現功能 增 數據庫的創建&#xff0c;數據表的創建已經實現 創建用戶 刪 刪除數據庫&#xff0c; 刪除庫下的某個表&#xff0c; 刪除某個用戶 改 暫無 查 查看所有的數據庫&#xff0c; 查看某個庫下的所有數據表&#xff0c; 查看某個表的結構&#xff0c; 查…

計算機網絡 OSI參考模型

目錄 OSS七層 OSI通信過程1 OSI通信過程2 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層 OSS七層 OSI通信過程1 OSI通信過程2 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層

2025年華為HCIP題庫分享

1101、 【拖拽題】OPSF鄰接關系建立的過程中需要使用不同的報文&#xff0c;那么請分別將以下各個狀態和該狀態使用的報文聯系起來。 答題格式為&#xff1a;11 22 33 43 正確答案&#xff1a;【12】【21】【24】【33】 解析&#xff1a; 建立鄰居關系 RouterA的一個連接到廣…

DIskgenius使用說明

文章目錄 一、概述1. 軟件簡介2. 系統要求 二、核心功能1. 分區管理(1) 查看磁盤分區(2) 創建與刪除分區(3) 調整分區大小(4) 格式化分區 2. 數據恢復(1) 恢復已刪除文件(2) 恢復丟失分區(3) 恢復誤格式化分區 3. 磁盤復制(1) 克隆磁盤(2) 磁盤鏡像 4. 文件操作(1) 文件復制與移…

linux--------------進程控制(上)

1.進程創建 1.1fork函數初識 在linux中fork函數是?常重要的函數&#xff0c;它從已存在進程中創建?個新進程。新進程為?進程&#xff0c;?原進 程為?進程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;?進程中返回0&#xff0c;?進程返回?進程id…

windows免密SSH連接 ubuntu教程

文章目錄 前情提要step1. 在windows下生成SSH密鑰step2. SSH公鑰copy到ubuntu的~/.ssh/authorized_keys內step3. 修改文件權限&#xff08;這一步完成后就可以實現免密SSH連接了&#xff09; 前情提要 ubuntu下安裝SSH服務 sudo apt-get install openssh-serverwindows下安裝…

中級:數組算法面試題全解析

一、引言 在Java面試中&#xff0c;數組相關的算法題是考察候選人基礎算法能力的常見類型。面試官通過這些問題了解候選人在面對具體問題時的邏輯思維和代碼實現能力。本文將深入剖析常見的數組算法面試題&#xff0c;結合實際開發場景&#xff0c;幫助讀者全面掌握這些知識點…

《Linux運維實戰:Ubuntu 22.04配置pam實現密碼復雜度策略》

總結&#xff1a;整理不易&#xff0c;如果對你有幫助&#xff0c;可否點贊關注一下&#xff1f; 更多詳細內容請參考&#xff1a;Linux運維實戰總結 一、背景信息 由于安全方面的考慮&#xff0c;先要求Ubuntu 22.04系統需配置密碼復雜度策略&#xff0c;先要求如下&#xff1…