如何为 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 必须使用cmake
Qt 安装的二进制文件。为此,请转到:“首选项”->“构建、执行、部署”->“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 中:
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、文本等内部文件。
qml 文件应包含在 qrc 文件中,并在运行时使用QQmlApplicationEngine加载
调试器:
为了在 Qt 类型的调试会话中获得人类可读的视图,必须在系统上安装一个新的 GDB 并且必须有漂亮的打印机:
Qt5 的漂亮打印机:
1- Lekensteyn Qt5 Pretty Printers(工作):
地址: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$
更新:
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$
现在您可以右键单击这些文件类型并在外部工具下:
自动美化器
如果在Qt Creator中你使用了像“Uncrustify”这样的美化器来自动美化保存源文件的代码,那么:
正如 Tom Lank 所提到的,现在可以使用 CMake 管理和构建 Qt 项目,这让 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()
应该在 line 之前find_package(Qt5Widgets REQUIRED)
。还包括任何 .ui 或 .qrc 文件作为调用中的依赖项add_executable()
以及 .cpp 文件。
最初浏览网页时,这让我非常困惑,但是您不需要对qt_*()
or进行任何调用qt5_*()
。据我所知,这些已被取代。
要测试您的CMakeLists.txt
实际工作是否正常,您可以尝试在 Qt Creator 中构建,方法是CMakeLists.txt
作为项目加载并构建。
确认后,您可以将CMakeLists.txt
文件作为项目加载到 CLion 中。最有可能的是,您需要告诉 CMake 在哪里可以找到您的 Qt 包,并在您find_package
的 's 之前使用这样的行:
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 编译器进行了测试。
此链接有一个快速启动项目,您只需将 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)。
您可以在 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 作为构建工具时,您可以使用 VC、Eclipse、CLion 等轻松开发 Qt。CMake 将为每个 IDE 生成项目文件。我以这种方式使用了几个 IDE。在这段旅程之后,我成为了一个更快乐的 Qt Creator 用户。
您唯一需要做的就是将 QT 安装添加..Qt\5.10.1\mingw53_32\bin;
到您的 PATH 中。之后不要忘记重启电脑,因为 CLion 出于某种原因无法刷新路径,只有完全重启电脑有帮助。