激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - 詳解如何配置CLion作為Qt5開發環境的方法

詳解如何配置CLion作為Qt5開發環境的方法

2021-11-01 14:14apocelipes C/C++

這篇文章主要介紹了詳解如何配置CLion作為Qt5開發環境的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

使用Qt進行程序開發時QtCreator總是不二之選。作為老牌IDE在提供了強大的功能同時也對Qt的支持做了許多優化。如果沒有特別的原因你應該使用它。

然而一個順手的工具將會極大得提升生產效率,而如果你之前使用別的工具進行開發,那么就要斟酌一下學習使用QtCreator的成本了。

所以我將介紹配置CLion(另一個強大的c++ IDE)作為Qt5的開發環境,在利用現有工具鏈的同時避免了安裝另一個大型軟件。

準備工作

CLion的安裝和激活超出了本文的討論范圍,我們假設你已經安裝好了CLion。如果需要幫助可以去CLion官網查找安裝方法。

CLion默認使用GCC進行工程構建,然而使用GCC是無法使用代碼補全功能的,所以我們將toolchains替換成clang:

詳解如何配置CLion作為Qt5開發環境的方法

注意,CLion自帶了一個cmake,如果我們想使用系統提供的一些cmake模塊,那么就必須如圖所示替換為系統的cmake。

隨后確保你的編譯器至少要支持c++11,如果能支持c++14或者c++17那自然是最好。

創建Qt5項目

下面是創建Qt5項目,CLion沒有區分普通c++項目和Qt項目(畢竟Qt項目一般也是c++項目或者c++/QML項目),所以這樣創建即可:

詳解如何配置CLion作為Qt5開發環境的方法

創建完成后項目結構如圖所示:

詳解如何配置CLion作為Qt5開發環境的方法

cmake-build-release目錄是生成moc等工具的中間代碼以及可執行文件的地方,當然可執行文件的生成路徑可以自己指定,這是CLion默認的選項。

這時編譯運行和代碼補全還是不能用的,所以接下來我們設置編譯和代碼補全。

設置Qt代碼補全和項目編譯

事先要說明的一點是,CLion是根據CMakeLists.txt文件來組織和設置項目的,所以如果我們需要添加諸如Qt這樣的第三方庫或是改變編譯行為,都只要修改CMakeLists.txt即可。

所以我們需要把CMakeLists.txt修改成如下的樣子:

cmake_minimum_required(VERSION 3.0)
project(test)

# 指定c++標準的版本
set(CMAKE_CXX_STANDARD 17)

# 自動調用moc,uic,rcc處理qt的擴展部分
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

# 設置Qt5的cmake模塊所在目錄,如果不設置將使用系統提供的版本
# QT_DIR和QT_VERSION是指定了qt安裝目錄和版本的環境變量
# 如果你使用了系統的cmake,那么會優先使用系統提供模塊,因為cmake會優先搜索CMAKE_SYSTEM_PREFIX_PATH
# 如果你不想讓cmake優先搜索系統目錄(會導致編譯使用系統安裝的qt而不是我們配置的),需要提示find_package命令
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} $ENV{QT_DIR}/$ENV{QT_VERSION}/gcc_64/lib/cmake)

# 找到對應的qt模塊,名字為qmake中QT += <name>中的name首字母大寫后加上Qt5前綴
# 例如core為QtCore,你也可以去${CMAKE_PREFIX_PATH}的目錄中找到正確的模塊名
# 如果不想使用系統qt,這樣寫(注意NO_DEFAULT_PATH參數,它會讓find_package跳過系統目錄的查找):
find_package(Qt5Widgets REQUIRED NO_DEFAULT_PATH)

# 如果你想要使用系統自帶的qt,這樣寫:
# find_package(Qt5Widgets REQUIRED)

# 將當前目錄的所有源文件添加進變量
aux_source_directory(. DIRS_SRCS)

# 通常這樣設置就可以,如果你的項目包含qrc文件,那么需要將它們單獨添加進來
# 例如add_executable(test ${DIRS_SRCS} resources.qrc)
add_executable(test ${DIRS_SRCS})

# 把對應Qt模塊的庫鏈接進程序
target_link_libraries(test Qt5::Widgets)

值得注意的是,使用系統提供的Qt的一個好處是編譯出來的程序可以使用系統的樣式和主題,但缺點是版本可能會與我們想使用的不一致從而產生錯誤。

修改之后點擊圖中的Reload changes

詳解如何配置CLion作為Qt5開發環境的方法

CLion會自動生成新的Makefile用于編譯項目,現在代碼補全也可以使用了。

編譯項目

我們先寫一個小的示例,讓一個spinbox和slider可以相互聯動:

#include <QApplication>
#include <QFormLayout>
#include <QtGlobal>
#include <QObject>
#include <QSlider>
#include <QSpinBox>
#include <QWidget>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    auto window = new QWidget;

    auto spinBox = new QSpinBox;
    spinBox->setRange(0, 100);
    auto slider = new QSlider;
    slider->setRange(0, 100);
    QObject::connect(spinBox,
                     // 對于重載函數需要給出確定的版本,QOverload需要編譯器支持c++11
                     QOverload<int>::of(&QSpinBox::valueChanged),
                     slider,
                     &QSlider::setValue);
    QObject::connect(slider,
                     &QSlider::valueChanged,
                     spinBox,
                     &QSpinBox::setValue);

    auto layout = new QFormLayout;
    layout->addRow("spin box:", spinBox);
    layout->addRow("slider:", slider);
    window->setLayout(layout);
    window->show();

    return app.exec();
}

然后我們點擊int main(...)左側的運行按鈕:

詳解如何配置CLion作為Qt5開發環境的方法

程序就開始編譯了:

詳解如何配置CLion作為Qt5開發環境的方法

如果編譯成功程序就會自動運行:

詳解如何配置CLion作為Qt5開發環境的方法

至此CLion已經可以正常配合Qt進行開發。

對于i18n以及qt rcc的支持,可以參考這篇文章

到此這篇關于詳解如何配置CLion作為Qt5開發環境的方法的文章就介紹到這了,更多相關CLion配置Qt5開發環境 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/apocelipes/p/10353698.html

延伸 · 閱讀

精彩推薦
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
主站蜘蛛池模板: 好吊色欧美一区二区三区四区 | 九九久久视频 | 亚洲精品com | 亚洲码无人客一区二区三区 | 亚洲第一色婷婷 | 久久综合久久综合久久综合 | 美女视频黄a视频免费全过程 | 国产精品成人一区二区三区电影毛片 | 亚洲性夜色噜噜噜7777 | 欧美日韩a∨毛片一区 | 亚洲最大的成人网 | 在线看免费观看av | 欧美一级毛片一级毛片 | 国产精品一区网站 | 中文字幕一二区 | 国产乱淫av | 性欧美久久 | 欧美日韩在线看片 | 一级片九九 | 国产一级桃视频播放 | 欧美黑人一级 | 77成人影院 | 色播久久 | 高清av在线 | 欧日一级片 | 操毛片| 国产精品免费麻豆入口 | av免费在线播放网址 | 一本到免费视频 | 亚洲精品成人在线视频 | av在线免费观看网 | 羞羞的视频 | 天天操综 | 免费国产自久久久久三四区久久 | 欧美一级高潮片免费的 | 欧美一级特黄特色大片免费 | 97zyz成人免费视频 | 久久精品日韩 | 一区二区三区日韩在线 | av在线免费电影 | 一级免费黄视频 |