环境
CLion :2019.3.6
Qt :5.9.6(MinGW)
Clion 配置
编译环境配置
添加Qt MinGW编译环境
添加Qt工具
创建工程
正常创建C++工程
CMakeLists
cmake_minimum_required(VERSION 3.8)
project(QtApp)
set(CMAKE_CXX_STANDARD 11) # 设置c++ 标准
set(CMAKE_AUTOMOC on)
set(CMAKE_AUTOUIC on)
set(CMAKE_AUTORCC on)
# 设置Q他的lib下的cmake 库目录
set(CMAKE_PREFIX_PATH D:/Qt/Qt5.9.6/5.9.6/mingw53_32/lib/cmake)
# 查找Qt相关的库 Qt5 COMPONENTS 是固定写法
find_package(Qt5 COMPONENTS Widgets Core Gui)
# 添加include路径
include_directories(
./
)
set(SOURCE_FILES
main.cpp
MainWindow.cpp)
if(${CMAKE_BUILD_TYPE} MATCHES "Release")
add_executable(${PROJECT_NAME} WIN32 # WIN32表示隐藏控制台
${SOURCE_FILES})
else()
add_executable(${PROJECT_NAME} # 去掉WIN32,方便qDebug()输出调试信息
${SOURCE_FILES})
endif()
target_link_libraries(
${PROJECT_NAME}
Qt5::Core
Qt5::Widgets
)
MainWindow.cpp
//
// Created by qiu on 2023/8/17.
//
#include <QtWidgets/QWidget>
#include "MainWindow.h"
using namespace std;
Widget::Widget(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
}
Widget::~Widget() {
delete ui;
}
MainWindow.h
//
// Created by qiu on 2023/8/17.
//
#ifndef QTAPP_MAINWINDOW_H
#define QTAPP_MAINWINDOW_H
#include <QtWidgets/QWidget>
#include "ui_MainWindow.h"
namespace Ui { class MainWindow; }
class Widget : public QMainWindow {
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::MainWindow *ui;
};
#endif //QTAPP_MAINWINDOW_H
main.cpp
#include "MainWindow.h"
#include <QtWidgets/QApplication>
int main(int arg,char *avgs[]) {
QApplication application(arg,avgs);
Widget *w = new Widget();
w->show();
return application.exec();
}
编译
Clion设置release编译方式
设置Qt资源
在工程目录下创建一个resources文件夹,存放图片、qcss等静态资源文件
在工程目录下创建一个res.qrc文件(QT的资源文件),内容如下(prefix就是前缀的虚拟文件夹名,在代码中引用规则为:虚拟文件夹名/文件路径)
<RCC>
<qresource prefix="/image">
<file>resources/images/1.png</file>
<file>resources/images/2.png</file>
<file>resources/images/3.png</file>
</qresource>
<qresource prefix="/qss">
<file>resources/qss/my.qss</file>
</qresource>
</RCC>
在CMake中配置qrc文件,需要再find_packages后面(重点)
set(QRC_SOURCE_FILE res.qrc)
qt_add_resources(${QRC_SOURCE_FILE})
代码示例:
//加载样式表
QFile file(":/qss/resources/qss/my.qss");
// 图片
QPixmap(":/image/resources/images/1.png");