一.创建文件和配置CMakeLists
1.创建头文件MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget* parent = nullptr);
~MainWindow();
private:
Ui::MainWindow* ui;
};
#endif // MAINWINDOW_H
2.创建源文件MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
MainWindow::MainWindow(QWidget* parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
3.创建UI文件 MainWindow.ui (我这是空白的)
4.创建demomain.cpp
#include <QApplication>
#include <iostream>
#include "mainwindow.h"
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.show();
std::cout << "in func main" << std::endl;
return app.exec();
}
5.创建CMakeLists.txt
cmake_minimum_required(VERSION 3.8)
#set PROJECT_NAME and version
project(HelloWorld)
set(VERSION_MAJOR 0)
set(VERSION_MINOR 0)
set(VERSION_PATCH 1)
#set path for QT 选择自己安装Qt的路径
set(CMAKE_PREFIX_PATH C:/Qt/6.5.3/msvc2019_64)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOMOC ON)
# Create code from a list of Qt designer ui files
set(CMAKE_AUTOUIC ON)
#find_package(Qt6 REQUIRED COMPONENTS Core Widgets Gui)
find_package(Qt6 REQUIRED COMPONENTS Widgets)
set(project_ui
MainWindow.ui)
set(project_headers
MainWindow.h)
set(project_sources
demoMain.cpp MainWindow.cpp)
add_executable(${PROJECT_NAME} ${project_headers} ${project_ui} ${project_sources})
# Use the widgets module from Qt 6
target_link_libraries(${PROJECT_NAME}
PUBLIC
#Qt6::Core
#Qt6::Gui
Qt6::Widgets
)
二.使用VS打开并运行
1.我的文件和位置
2.vs打开
可以选择生成的exe文件运行。
三.总结
1.在Qt中创建的CMakeLists.txt文件在vs中是可以不修改直接使用的(vs有Qt插件,没插件时没试过)。如果报错的地方是没找到Qt6xxx.cmake什么的,记得加:set(CMAKE_PREFIX_PATH "C:/Qt/6.5.3/msvc2019_64");路径根据自己的来。
## 1.find_package(Qt6 REQUIRED COMPONENTS Widgets)
find_package()找的是.cmake文件,Qt6 的位置是可以通过set(Qt6_DIR "C:/Qt/6.5.3/msvc2019_64/lib/cmake/Qt6")来设置自己的Qt6文件所在的位置。
REQUIRED COMPONENTS 指必须要找到的后面指定的.cmake文件,找不到就报错
来自以下文章