使用VS Code進(jìn)行Qt開發(fā)的實(shí)現(xiàn)
Qt Creator界面不美觀,而VS Code更漂亮一些。
因?yàn)镼t5支持使用CMake進(jìn)行構(gòu)建,而VS Code也可以支持CMake構(gòu)建系統(tǒng),因此是完全可以的。
測(cè)試環(huán)境
- Qt 5.15.0
- CMake 3.17.5
- Visual Studio 2019 16.7.5(使用C++的桌面開發(fā))
- Visual Studio Code 1.49.3
步驟
1. 將Qt的bin目錄添加到環(huán)境變量
假設(shè)Qt安裝在C:\Qt
,那么將C:\Qt\5.15.0\msvc2019_64\bin
添加到環(huán)境變量。
2. 安裝VS Code擴(kuò)展
在擴(kuò)展商店搜索c++
,安裝微軟發(fā)行的C/C++擴(kuò)展。
在擴(kuò)展商店搜索cmake
,安裝前兩個(gè)擴(kuò)展,分別為CMake、CMake Tools。
3. 使用Qt Creator創(chuàng)建CMake項(xiàng)目
使用Qt Creator創(chuàng)建一個(gè)測(cè)試項(xiàng)目,如圖所示:
4. 在VS Code中打開項(xiàng)目
用VS Code打開CMakeLists.txt
文件所在目錄,如圖所示:
需要選擇一個(gè)kit
,我是用的是VS 2019的工具包,也可以使用MinGW
,具體請(qǐng)參考CMake擴(kuò)展的官方文檔。
提示是否配置智能感知
,選擇是。
5. 構(gòu)建并運(yùn)行項(xiàng)目
按F7
進(jìn)行構(gòu)建:
按Shift + F5
運(yùn)行:
7. 調(diào)試項(xiàng)目
添加斷點(diǎn),按下Ctrl + F5
進(jìn)行調(diào)試:
一些小問題
上述所有步驟完成后,已經(jīng)可以正常編碼和運(yùn)行,但智能感知有一點(diǎn)問題
,如圖:
原因在于Qt生成的ui文件沒有被包含到智能感知的include目錄中。
查詢了CMake文檔后發(fā)現(xiàn)ui文件所在目錄會(huì)被添加到目標(biāo)屬性的include目錄屬性中:
但實(shí)際驗(yàn)證發(fā)現(xiàn)并沒有,所以我們還需要手動(dòng)添加這個(gè)屬性。
假設(shè)生成的目標(biāo)為Test
,在CMakeLists.txt
文件的最后一行添加:
target_include_directories(Test PRIVATE "${CMAKE_BINARY_DIR}/Test_autogen/include_Debug")
最終的CMakeLists.txt
文件內(nèi)容為:
cmake_minimum_required(VERSION 3.5) project(Test LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) # QtCreator supports the following variables for Android, which are identical to qmake Android variables. # Check http://doc.qt.io/qt-5/deployment-android.html for more information. # They need to be set before the find_package(Qt5 ...) call. #if(ANDROID) # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") # if (ANDROID_ABI STREQUAL "armeabi-v7a") # set(ANDROID_EXTRA_LIBS # ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so # ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so) # endif() #endif() find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) if(ANDROID) add_library(Test SHARED main.cpp mainwindow.cpp mainwindow.h mainwindow.ui ) else() add_executable(Test main.cpp mainwindow.cpp mainwindow.h mainwindow.ui ) endif() target_link_libraries(Test PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) target_include_directories(Test PRIVATE "${CMAKE_BINARY_DIR}/Test_autogen/include_Debug")
智能感知正常工作:
到此這篇關(guān)于使用VS Code進(jìn)行Qt開發(fā)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VSCode Qt開發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
哈希表實(shí)驗(yàn)C語言版實(shí)現(xiàn)
以下是對(duì)哈希表實(shí)驗(yàn)用C語言實(shí)現(xiàn)的代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07C/C++實(shí)現(xiàn)獲取硬盤序列號(hào)的示例代碼
獲取硬盤的序列號(hào)、型號(hào)和固件版本號(hào),此類功能通常用于做硬盤綁定或硬件驗(yàn)證操作,下面我們就來學(xué)習(xí)一下如何使用C/C++實(shí)現(xiàn)獲取硬盤序列號(hào)吧2023-11-11利用Matlab實(shí)現(xiàn)迭代適應(yīng)點(diǎn)算法
道格拉斯-普克算法(Douglas–Peucker?algorithm,亦稱為拉默-道格拉斯-普克算法、迭代適應(yīng)點(diǎn)算法、分裂與合并算法)是將曲線近似表示為一系列點(diǎn),并減少點(diǎn)的數(shù)量的一種算法。本文將利用Matlab實(shí)現(xiàn)這一算法,需要的可以參考一下2022-04-04