CLion+Qt5环境配置

Qt本身使用qmake进行编译的,但是CLion使用cmake进行组织管理,因此,在CLion中使用Qt需要一些特殊的cmake设置。

新建工程

打开CLion,新建project,工程名称为WidgetCLion+Qt5环境配置_第1张图片

修改cmakelist文件

新建的工程,自动包含一个cmakelist.txt和main.cpp文件。要使工程可以使用Qt5的UI和信号槽机制,则需要分别包含UIC功能和MOC。打开cmakelist.txt,修改如下

cmake_minimum_required(VERSION 3.3)
project(Widget)

set(CMAKE_INCLUDE_CURRENT_DIR  ON)
#打开Qt的MOC功能和UI文件处理功能
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#查找Qt的库
find_package(Qt5Widgets)

set(SOURCE_FILES main.cpp Widget.cpp Widget.h)

add_executable(Widget ${SOURCE_FILES})

target_link_libraries(Widget Qt5::Widgets)

新建Qt的UI文件

打开Qt designer,设计UI,CLion+Qt5环境配置_第2张图片

新建对UI的处理类Widget

CLion+Qt5环境配置_第3张图片
Widget.h最终代码如下:

#include 
#include "ui_widget.h"

class Widget : public QWidget {
Q_OBJECT
public:
    Widget(QWidget* parent = 0);
    ~Widget();

private slots:
    void slotPushButton();

private:
    Ui::Widget ui;
    int m_iCount;
};

Widget.cpp最终代码如下:

#include "Widget.h"

Widget::Widget(QWidget* parent)
: QWidget(parent)
{
    m_iCount = 0;
    ui.setupUi(this);
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(slotPushButton()));
}

Widget::~Widget() {

}

void Widget::slotPushButton() {
    ++m_iCount;
    ui.lineEdit->setText(QString::number(m_iCount));
}

修改main文件

main.cpp最终结果为:

#include 
#include "Widget.h"

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

    Widget w;
    w.setGeometry(500, 200, 320, 240);
    w.show();
    return a.exec();
}

编译运行

Ctrl+F9,编译
shift+F10,运行
CLion+Qt5环境配置_第4张图片

你可能感兴趣的:(C++/Qt)