79

如何为 Qt 框架配置 CLion IDE?这个 IDE 是否与 Qt 兼容,或者是否有其他与 Qt 兼容的 IDE?

我只是想尝试使用 Qt Creator 以外的东西。

4

7 回答 7

59

我和你一样绝望,直到我读到这个 ​​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 必须使用cmakeQt 安装的二进制文件。为此,请转到:“首选项”->“构建、执行、部署”->“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 模块执行此操作。

于 2016-08-16T09:48:28.243 回答
34

更新

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、文本等内部文件。

  • 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$

现在您可以右键单击这些文件类型并在外部工具下:

  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. 组织进口
于 2018-05-06T21:32:14.923 回答
6

正如 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 编译器进行了测试。

于 2017-07-12T17:43:08.283 回答
2

此链接有一个快速启动项目,您只需将 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)。

于 2018-02-09T18:32:32.850 回答
2

您可以在 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 应用程序的更多信息。

于 2017-04-21T06:59:47.703 回答
1

当您使用 CMake 作为构建工具时,您可以使用 VC、Eclipse、CLion 等轻松开发 Qt。CMake 将为每个 IDE 生成项目文件。我以这种方式使用了几个 IDE。在这段旅程之后,我成为了一个更快乐的 Qt Creator 用户。

于 2015-10-19T10:15:27.857 回答
0

您唯一需要做的就是将 QT 安装添加..Qt\5.10.1\mingw53_32\bin;到您的 PATH 中。之后不要忘记重启电脑,因为 CLion 出于某种原因无法刷新路径,只有完全重启电脑有帮助。

于 2018-05-05T14:05:15.123 回答