簡體   English   中英

如何為 Qt 框架配置 CLion IDE?

[英]How to configure CLion IDE for Qt Framework?

如何為 Qt 框架配置 CLion IDE? 這個 IDE 是否與 Qt 兼容,或者是否有其他與 Qt 兼容的 IDE?

我只是想嘗試使用 Qt Creator 以外的東西。

我和你一樣絕望,直到我讀到這個 Quora 討論 它非常適合我!

總結一下,有兩個主要步驟:

首先,CLion 使用 CMake 來編譯您的代碼。 它基於 CMake 配置文件(例如“CMakeLists.txt”)。 您必須添加基於 Qt 的 CMake 命令(帶有“find_package”和“target_link_libraries”的行):

cmake_minimum_required(VERSION 3.5)
project(myqtproject)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
find_package(Qt5Widgets REQUIRED)                 <-- this line

add_executable(myqtproject ${SOURCE_FILES})

target_link_libraries(myqtproject Qt5::Widgets)   <-- this line

其次,CLion 必須使用 Qt 安裝的cmake二進制文件。 為此,請轉到:“首選項”->“構建、執行、部署”->“CMake”並在“CMake 選項”中添加 Qt 使用的 CMake 路徑,該路徑應位於安裝 Qt 的目錄中。 例如,在 OSX 上:

-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake

您可以通過在main.cpp執行一些測試腳本來測試一切是否正常:

#include <QApplication>
#include <QDebug>

using namespace std;

int main() {
    qDebug() << QT_VERSION_STR;
    return 1;
}

應該顯示如下內容:

/Users/edouard/Library/Caches/CLion2016.2/cmake/generated/myqtproject-89a4132/89a4132/Debug/untitled
5.7.0

Process finished with exit code 1

更新

我被添加 Qt5 模塊(例如 QSql)的問題所困擾。 您可以通過添加 CMakeLists.txt 來做到這一點:

find_package(Qt5Sql REQUIRED)

就在另一個find_package ,並在最后一行添加:

target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)

您可以使用所有其他 Qt5 模塊執行此操作。

更新

現在在 Jet Brain 網站上有一個官方教程:

https://www.jetbrains.com/help/clion/qt-tutorial.html

原答案

這種方法是用於最新Qt版本的最簡單方法之一。

Qt:    5.10.1
CLion: 2018.1.2
GDB:   8.1

項目設置

CLion 中

  1. 創建C++ 可執行文件/項目
  2. 將此示例“ CMakeLists.txt ”用於使用以下內容的常見控制台/gui 項目: QtCoreQtWidgetsQtQuick

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(PROJECT_NAME)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/cmake")

find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Quick REQUIRED)

add_executable(PROJECT_NAME main.cpp MainWindow.cpp MainWindow.h qml.qrc)

target_link_libraries(PROJECT_NAME Qt5::Core)
target_link_libraries(PROJECT_NAME Qt5::Widgets)
target_link_libraries(PROJECT_NAME Qt5::Quick)
  • 資源文件 (.qrc) 應該添加到 add_executable 列表中,以便 moc 能夠在資源和內部文件(如 qmls、texts...)上運行其過程。

  • qml 文件應包含在 qrc 文件中,並在運行時使用QQmlApplicationEngine加載

調試器:

為了在 Qt 類型的調試會話中具有人類可讀的視圖,必須在系統上安裝新的 GDB 並且必須有漂亮的打印機:

Qt5 的漂亮打印機:

1- Lekensteyn Qt5 漂亮的打印機(工作):

地址: https : //github.com/Lekensteyn/qt5printers

設置:~/.gdbinit

python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end

2-官方(不工作!!!):

"PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/share/qtcreator/debugger/"

設置:~/.gdbinit

如包含的自述文件所述(但不起作用!):

python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *

外部工具

在“文件->設置->工具->外部工具”中,添加4個外部工具:

Qt 創建者:

Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$

界面設計師:

Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/designer")
Arguments: $FilePath$

L更新:

Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts

語言學家:

Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/linguist")
Arguments: $FilePath$

現在您可以右鍵單擊這些文件類型並在外部工具下:

  1. 對於 .ui 選擇Qt Creator / Designer並開始 UI 設計
  2. 對於 .qml 選擇Qt Creator並在 QML 編輯器中設計 UI
  3. 對於 .qrc 選擇Qt Creator並使用資源編輯器
  4. 對於 .cpp/.ui 選擇LUpdate以創建其翻譯文件
  5. 對於 .ts 選擇Linguist並開始翻譯

自動美化器

如果在Qt Creator 中您使用了“Uncrustify”之類的美化器來自動美化保存源文件時的代碼,則:

  1. 安裝插件“保存操作
  2. 在“文件 -> 設置 -> 保存操作”下
  3. 查看:
  4. 保存時的主動保存操作
  5. 重新格式化文件
  6. 為了獲得最佳性能,請取消選中:
  7. 組織進口

正如 Tom Lank 所提到的,Qt 項目現在可以使用 CMake 進行管理和構建,這讓 CLion 感到高興。

Qt5 的 CMake 手冊描述了如何。 Qt 在幕后提供了很多魔法,在CMake 文檔中對其進行了更好的解釋。

Qt CMake 手冊或以上未提及的一件事是您還需要以下幾行:

set(CMAKE_AUTOUIC ON) # if you have any .ui files
set(CMAKE_AUTORCC ON) # if you have any .qrc files 

所有這些對set()調用都應該出現在find_package(Qt5Widgets REQUIRED)行之前。 add_executable()任何 .ui 或 .qrc 文件作為依賴項包含在對add_executable()的調用中以及您的 .cpp 文件中。

這最初讓我在瀏覽網頁時感到非常困惑,但是您不需要對qt_*()qt5_*()任何調用。 據我所知,這些已被取代。

要測試您的CMakeLists.txt真正正常工作,您可以嘗試在 Qt Creator 中構建,方法是將CMakeLists.txt作為項目加載並構建。

確認后,您可以將CMakeLists.txt文件作為項目加載到 CLion 中。 最有可能的是,您需要在find_package之前用這樣的一行告訴 CMake 在哪里可以找到您的 Qt 包:

set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")

最后,如果您在 Windows 上運行 / 構建,Qt 不再帶有 GCC/Mingw32 庫的預構建。 您需要使用 Visual Studio 進行構建。 幸運的是, CLion 現在實驗性地支持 Visual Studio ,我發現它適用於 Qt 項目; 只需確保將架構(在 Settings->Build, Execution, Development->CMake 下)設置為 x86_amd64,以便在 64 位模式下構建並與 Qt 的預構建庫兼容。

所有這些都使用 CLion 2017.1、Qt 5.9 和 Visual Studio 2015 編譯器進行了測試。

您可以在 CLion 中構建 QT 應用程序。 QT 提供處理所有細節的 CMake 模塊。

以下 CMake 腳本構建示例應用程序“ 動態布局示例

cmake_minimum_required(VERSION 3.7)
project(qtlayoutexample)
set(CMAKE_CXX_STANDARD 14)

# Find QT packages
find_package(Qt5Widgets)

# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Widgets_INCLUDE_DIRS})

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

# Add compiler flags for building executables (-fPIE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

qt5_generate_moc(main.cpp main.moc)

# Tell CMake to create the qtlayoutexample executable
add_executable(qtlayoutexample main.cpp dialog.cpp main.moc)

#Link the qtlayoutexample executable to the Qt 5 widgets library.
target_link_libraries(qtlayoutexample Qt5::Widgets)

有關使用 CMake 構建 Qt 應用程序的更多信息。

此鏈接有一個快速啟動項目,您只需將 CMakeLists 中的 CMAKE_PREFIX_PATH 更改為您要使用的 Qt 打包編譯器的位置(我的是 gcc_64,他的默認是 clang_64)——它有一些其他人提到的設置答案已經設定:

https://github.com/ArneGockeln/qtstarter

此外,(在基於 Ubuntu 的 Linux 上)我必須按照此處所述安裝 OpenGL 庫( https://askubuntu.com/questions/11378/how-do-i-set-up-an-opengl-programming-environment )。

當您使用 CMake 作為構建工具時,您可以使用 VC、Eclipse、CLion 等輕松開發 Qt。 CMake 將為每個 IDE 生成項目文件。 我以這種方式使用了幾個 IDE。 在這次旅程之后,我對 Qt Creator 的用戶更加滿意了。

你唯一需要的是添加 QT install ..Qt\\5.10.1\\mingw53_32\\bin; 到您的路徑。 之后不要忘記重啟電腦,因為 CLion 由於某種原因無法刷新路徑,只有完全重啟電腦才有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM