From 52ff5cff2bd54b74bc317b228ef863a338c0a698 Mon Sep 17 00:00:00 2001 From: Blitblank Date: Fri, 19 Dec 2025 22:42:57 -0600 Subject: [PATCH] initial commit --- .gitignore | 1 + CMakeLists.txt | 24 ++++++++++++++++++++++++ scripts/build.bat | 9 +++++++++ src/main.cpp | 13 +++++++++++++ src/mainwindow.cpp | 33 +++++++++++++++++++++++++++++++++ src/mainwindow.hpp | 21 +++++++++++++++++++++ 6 files changed, 101 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 scripts/build.bat create mode 100644 src/main.cpp create mode 100644 src/mainwindow.cpp create mode 100644 src/mainwindow.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7f0393d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,24 @@ + +cmake_minimum_required(VERSION 3.16) + +project(HelloQt LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Adjust path to your Qt MinGW install +set(CMAKE_PREFIX_PATH "C:/Qt/6.7.2/mingw_64") + +find_package(Qt6 REQUIRED COMPONENTS Widgets) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +add_executable(HelloQt + src/main.cpp + src/mainwindow.hpp + src/mainwindow.cpp +) + +target_link_libraries(HelloQt PRIVATE Qt6::Widgets) diff --git a/scripts/build.bat b/scripts/build.bat new file mode 100644 index 0000000..a2c594b --- /dev/null +++ b/scripts/build.bat @@ -0,0 +1,9 @@ + +rm -r build +mkdir build +cd build + +cmake .. -G "MinGW Makefiles" +cmake --build . + +C:\Qt\6.10.1\mingw_64\bin\windeployqt.exe HelloQt.exe diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..a3a39c8 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,13 @@ + +#include +#include "mainwindow.hpp" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + MainWindow window; + window.show(); + + return app.exec(); +} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp new file mode 100644 index 0000000..13b5fc9 --- /dev/null +++ b/src/mainwindow.cpp @@ -0,0 +1,33 @@ + +#include "mainwindow.hpp" + +#include +#include +#include +#include + +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { + + // probably this will be in a qml file + auto *central = new QWidget(this); + auto *layout = new QVBoxLayout(central); + + label_ = new QLabel("cases: 0", this); + label_->setAlignment(Qt::AlignCenter); + + button_ = new QPushButton("many such cases !", this); + + layout->addWidget(label_); + layout->addWidget(button_); + + setCentralWidget(central); + setWindowTitle("moblus !!!"); + resize(400, 200); + + connect(button_, &QPushButton::clicked, this, &MainWindow::incrementCounter); +} + +void MainWindow::incrementCounter() { + counter_++; + label_->setText(QString("cases: %1").arg(counter_)); +} \ No newline at end of file diff --git a/src/mainwindow.hpp b/src/mainwindow.hpp new file mode 100644 index 0000000..dc4a3c2 --- /dev/null +++ b/src/mainwindow.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include + +class QLabel; +class QPushButton; + +class MainWindow : public QMainWindow { + Q_OBJECT + + public: + explicit MainWindow(QWidget *parent = nullptr); + + private slots: + void incrementCounter(); + + private: + int counter_ = 0; + QLabel *label_; + QPushButton *button_; +}; \ No newline at end of file