Перейти к основному содержимому

Qt — первая программа

Разработчику Архитектору

Qt — первая программа

Минимальное Qt Widgets приложение на Qt 6 с CMake. Полный обзор фреймворка: Qt. Сборка: CMake — первая программа.


Установка

  • Windows/macOS/Linux: qt.io/download — Qt 6.x, компонент Qt Widgets;
  • или пакетный менеджер ОС (apt install qt6-base-dev на Ubuntu).

Запомните путь к Qt, например C:/Qt/6.7.0/msvc2019_64.


Структура

qt-hello/
├── CMakeLists.txt
└── main.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(qt_hello LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

find_package(Qt6 REQUIRED COMPONENTS Widgets)

add_executable(qt_hello main.cpp)
target_link_libraries(qt_hello PRIVATE Qt6::Widgets)

Конфигурация (подставьте свой путь):

cmake -S . -B build -DCMAKE_PREFIX_PATH="C:/Qt/6.7.0/msvc2019_64"
cmake --build build

main.cpp

#include <QApplication>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QLabel>

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

QWidget window;
window.setWindowTitle("Qt Hello");

auto* label = new QLabel("Нажмите кнопку", &window);
auto* button = new QPushButton("Click", &window);

QObject::connect(button, &QPushButton::clicked, [label]() {
label->setText("Привет из Qt!");
});

auto* layout = new QVBoxLayout(&window);
layout->addWidget(label);
layout->addWidget(button);

window.resize(320, 120);
window.show();

return app.exec();
}

Сигналы и слоты

connect(отправитель, сигнал, получатель, слот) — реактивная связь без жёсткой зависимости. Лямбда-слот удобен для прототипов; в больших проектах — отдельные методы классов.


Дальше

  • Qt Creator — визуальный редактор .ui;
  • Qt Quick (QML) — современный UI (см. 27.md);
  • тесты логики: Google Test, UI — QTest.

Десктоп в экосистеме ITUniverse: /encyclopedia/4-code-dev/4-11-desktopnye-prilozheniya/intro.


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).