首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Qt框架配置CLion集成开发环境?

如何为Qt框架配置CLion集成开发环境?
EN

Stack Overflow用户
提问于 2015-05-14 18:36:39
回答 7查看 56.8K关注 0票数 77

如何为Qt框架配置CLion集成开发环境?这个IDE是否与Qt兼容,或者是否有其他IDE与Qt兼容?

我只想尝试使用Qt Creator之外的其他工具。

EN

回答 7

Stack Overflow用户

发布于 2016-08-16 17:48:28

我和你一样绝望,直到我读了this Quora discussion。它对我来说工作得很完美!

总而言之,主要有两个步骤:

首先,CLion使用CMake编译您的代码。它基于CMake配置文件(例如"CMakeLists.txt")。您必须添加基于Qt的CMake命令(带有'find_package‘和’target_link_libraries‘的行):

代码语言:javascript
复制
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二进制文件。为此,请转到:'Preferences‘-> 'Build,Execution,Deployment’-> ' CMake‘,在'CMake options’中追加Qt使用的CMake路径,该路径应该位于Qt的安装目录中。例如,在OSX上:

代码语言:javascript
复制
-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake

您可以通过在main.cpp中执行一个小测试脚本来测试一切是否工作正常

代码语言:javascript
复制
#include <QApplication>
#include <QDebug>

using namespace std;

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

其中应显示类似以下内容:

代码语言:javascript
复制
/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中添加以下内容来完成此操作:

代码语言:javascript
复制
find_package(Qt5Sql REQUIRED)

紧跟在另一个find_package之后,并在最后一行中添加:

代码语言:javascript
复制
target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)

您可以对所有其他Qt5模块执行此操作。

票数 58
EN

Stack Overflow用户

发布于 2018-05-07 05:32:15

更新

Jet Brain网站上现在有一个官方教程:

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

原始答案

此方法是用于最新Qt版本的最简单方法之一。

代码语言:javascript
复制
Qt:    5.10.1
CLion: 2018.1.2
GDB:   8.1

项目设置

在CLion中

  1. 创建C++可执行文件/库项目
  2. 将此示例"CMakeLists.txt“用于常见的控制台/gui项目,该项目使用: QtCore、QtWidgets和QtQuick

CMakeLists.txt:

代码语言:javascript
复制
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打印机(工作中):

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

设置:~/.gdbinit

代码语言:javascript
复制
python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end

2-官方(不工作!):

代码语言:javascript
复制
"PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/share/qtcreator/debugger/"

设置:~/.gdbinit

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

代码语言:javascript
复制
python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *

外部工具

在"File -> Settings -> Tools -> External Tools“中,添加4个外部工具:

Qt Creator:

代码语言:javascript
复制
Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$

UI设计器:

代码语言:javascript
复制
Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/designer")
Arguments: $FilePath$

LUpdate:

代码语言:javascript
复制
Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts

语言学家:

代码语言:javascript
复制
Program:   "PATH_TO_QT/QT_VERSION/QT_ARCH/lib/bin/linguist")
Arguments: $FilePath$

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

  1. For .ui选择Qt创建器/设计器并启动UI .ui .qml在QML编辑器中选择Qt创建器和设计UI
  2. For .qrc选择Qt创建器并使用资源编辑器
  3. For .cpp/.ui选择LUpdate以创建其翻译文件
  4. For .ts选择Linguist并启动翻译代码<

>G246

自动美容仪

如果在Qt Creator中使用了像"Uncrustify“这样的美化器来自动美化保存源文件的代码,那么:

为了获得最佳性能un-check:

  • Organize imports

,请在save

  • Reformat file ->

  • 上安装插件"Save Actions"

  • Under “文件导入设置和保存
  1. 保存操作
票数 33
EN

Stack Overflow用户

发布于 2017-07-13 01:43:08

正如Tom Lank提到的,Qt项目现在可以在CMake下管理和构建,这让CLion很高兴。

Qt5's CMake manual描述了如何。Qt在这里提供了很多魔法,在CMake documentation中解释得更好。

在Qt CMake手册或更高版本中没有提到的一件事是,您还需要这些行:

代码语言:javascript
复制
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)行之前。还要将任何.ui或.qrc文件作为依赖项包括在对add_executable()的调用中,以及.cpp文件。

这一开始让我在浏览网页时感到非常困惑,但你不需要调用任何qt_*()qt5_*()。据我所知,这些已经被取代了。

要测试您的CMakeLists.txt是否工作正常,您可以尝试在Qt Creator中进行构建,方法是将CMakeLists.txt作为项目加载并构建。

确认后,即可将CMakeLists.txt文件作为项目加载到CLion中。最有可能的是,你需要在你的find_package之前用下面这样的一行告诉CMake在哪里可以找到你的Qt包:

代码语言:javascript
复制
set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")

最后,如果你在/built for windows上运行,Qt不再预构建了GCC/Mingw32库。您需要使用visual studio进行构建。幸运的是,CLion now supports Visual Studio experimentally和我发现它适用于Qt项目;只需确保将架构(在设置->构建,执行,开发->CMake下)设置为x86_amd64,以便在64位模式下构建,并与Qt的预构建库兼容。

所有这些都在CLion 2017.1、Qt5.9和Visual Studio2015编译器上进行了测试。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30235175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档