C++如何使用Qt创建第一个GUI窗口?(入门教程)

用Qt创建首个GUI窗口需三步:初始化QApplication、定义继承QMainWindow的窗口类、调用show()显示窗口;需正确链接Qt6::Widgets模块并运行CMake构建。

用Qt创建第一个GUI窗口,核心是初始化应用、定义窗口类、显示窗口三步。不需要复杂配置,只要环境已安装Qt(推荐Qt 6 + CMake),就能快速跑起来。

1. 创建基础项目结构

新建一个空目录,比如 helloqt,在里面创建两个文件

  • main.cpp:程序入口,负责启动应用和显示窗口
  • mainwindow.hmainwindow.cpp:自定义窗口类(继承 QMainWindow

确保你的构建系统(如CMakeLists.txt)已正确链接 Qt6::Widgets 模块。

2. 编写主窗口类(mainwindow.h / mainwindow.cpp)

mainwindow.h 中声明窗口类:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

class MainWindow : public QMainWindow
{
    Q_OBJECT  // 必须添加,支持信号槽机制

public:
    MainWindow(QWidget *parent = nullptr);
};

#endif // MAINWINDOW_H

mainwindow.cpp 中实现构造函数(可先不写内容,让窗口空白显示):

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(400, 300);                    // 设置初始大小
    setWindowTitle("Hello Qt!");         // 设置窗口标题
}

3. 编写 main 函数并运行

main.cpp 中写启动逻辑:

#include 
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);      // 创建应用对象(必须)
    
    MainWindow window;                 // 创建窗口实例
    window.show();                     // 显示窗口(关键!不调用就不会出现)

    return app.exec();                 // 启动事件循环(保持程序运行)
}

注意:show() 不能省略;exec() 是阻塞调用,负责处理鼠标、键盘等事件。

4. 构建与运行(以CMake为例)

在项目根目录写一个简版 CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(helloqt)

find_package(Qt6 REQUIRED COMPONENTS Widgets)
set(CMAKE_CXX_STANDARD 17)

add_executable(helloqt main.cpp mainwindow.cpp)
target_link_libraries(helloqt Qt6::Widgets)

终端中依次执行:

  • mkdir build && cd build
  • cmake ..(确保已配置好Qt6路径)
  • cmake --build .
  • ./helloqt(Linux/macOS)或 helloqt.exe(Windows)

看到标题为 “Hello Qt!” 的空白窗口,说明成功了。