安装Qt
具体百度,但是安装完一定一定要配置环境,win10和ubuntu就只有环境变量配置区别
- win10配置环境
- Ubuntu配置环境
- sudo gedit /etc/profile
- 保存后执行命令:source /etc/profile
- sudo gedit /etc/profile
配置Clion
clion安装完成后,打开设置
1.配置QtDesigner
Arguments: $FileName$
working directory:$ProjectFileDir$
2.配置uic
arguments:$FileName$ -o ui_$FileNameWithoutExtension$.h
working directory:$ProjectFileDir$
创建项目HelloQt测试
-
cmakelist.txt 内容
cmake_minimum_required(VERSION 3.14)
project(HelloQt)set(CMAKE_CXX_STANDARD 14)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)add_executable(PROJECT_NAME main.cpp mainwindow.cpp mainwindow.h)
target_link_libraries(PROJECT_NAME Qt5::Core)
target_link_libraries(PROJECT_NAME Qt5::Widgets) -
创建.ui文件后,右键该文件
使用qtdesigner设计好界面
-
使用uic工具生成头文件
-
创建mainwindow类
//mainwindow.h
#ifndef HELLOQT_MAINWINDOW_H
#define HELLOQT_MAINWINDOW_H
#include <QMainWindow>
#include "ui_mywidget.h"
namespace Ui{
class MainWindow;
}
class MainWindow: public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent= nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
private slots:
void ValueChanged(int value);
};
#endif //HELLOQT_MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mywidget.h"
MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
connect(ui->dial,&QDial::valueChanged,this,&MainWindow::ValueChanged);
connect(ui->horizontalSlider,&QSlider::valueChanged,this,&MainWindow::ValueChanged);
connect(ui->verticalSlider,&QSlider::valueChanged,this,&MainWindow::ValueChanged);
}
MainWindow::~MainWindow() {
delete ui;
}
void MainWindow::ValueChanged(int value) {
ui->dial->setValue(value);
ui->horizontalSlider->setValue(value);
ui->verticalSlider->setValue(value);
}
//main.cpp
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[]){
QApplication a(argc,argv);
MainWindow w;
w.show();
return a.exec();
}
- 编译运行
编译Release版并去除控制台
打开设置
添加release后apply,编译即可,但此时去运行会有一个控制台同时出现,去除控制台需要在CMakeLists.txt中添加
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows")
后重新编译即可去除控制台。
转载去除控制台方法:https://github.com/GlLamant/CMakeCompileQtProject/blob/master/CMakeLists.txt