From 7b7910a903e9b2fbf7210d33bedfd0c91b5f7958 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 17 Nov 2020 17:07:02 +0100 Subject: [PATCH] Hello Qt --- CMakeLists.txt | 48 +++++++++++++++++++++++++++++++++++++ include/MainWindow.hpp | 19 +++++++++++++++ include/ui/MainWindow.ui | 52 ++++++++++++++++++++++++++++++++++++++++ src/MainWindow.cpp | 14 +++++++++++ src/main.cpp | 11 +++++++++ 5 files changed, 144 insertions(+) create mode 100644 include/MainWindow.hpp create mode 100644 include/ui/MainWindow.ui create mode 100644 src/MainWindow.cpp create mode 100644 src/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index e69de29..5c7c459 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.10) + +project(Regression) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_AUTOUIC_SEARCH_PATHS include/ui) + +find_package(Qt5 COMPONENTS Widgets REQUIRED) + +file(GLOB_RECURSE source_files + "src/*.cpp" +) + +file(GLOB_RECURSE include_files + "include/*.hpp" + "include/*.ui" +) + +add_executable(regression + ${include_files} + ${source_files} +) + +target_include_directories(regression PRIVATE + include + ${Qt5_INCLUDE_DIRS} +) + +target_link_libraries(regression PRIVATE + Qt5::Widgets +) + +if(WIN32) + add_custom_command(TARGET regression POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ + COMMAND ${CMAKE_COMMAND} -E copy $ $ + COMMAND ${CMAKE_COMMAND} -E copy $ $ + + # This is garbage, remove this, Qt just sucks + COMMAND ${CMAKE_COMMAND} -E copy ${Qt5_DIR}/../../../plugins/platforms/qwindowsd.dll $ + COMMAND ${CMAKE_COMMAND} -E copy ${Qt5_DIR}/../../../plugins/platforms/qwindows.dll $ + ) +endif() \ No newline at end of file diff --git a/include/MainWindow.hpp b/include/MainWindow.hpp new file mode 100644 index 0000000..848dce0 --- /dev/null +++ b/include/MainWindow.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include + +namespace Ui { + class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget* parent = nullptr); + ~MainWindow(); + +private: + Ui::MainWindow* ui; +}; \ No newline at end of file diff --git a/include/ui/MainWindow.ui b/include/ui/MainWindow.ui new file mode 100644 index 0000000..6d9cf07 --- /dev/null +++ b/include/ui/MainWindow.ui @@ -0,0 +1,52 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + 146 + 102 + 271 + 91 + + + + + 28 + 75 + true + + + + TextLabel + + + + + + + 0 + 0 + 800 + 21 + + + + + + + + diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp new file mode 100644 index 0000000..3ac0d22 --- /dev/null +++ b/src/MainWindow.cpp @@ -0,0 +1,14 @@ +#include "MainWindow.hpp" +#include "ui_MainWindow.h" + +MainWindow::MainWindow(QWidget* parent) : + QMainWindow(parent), ui(new Ui::MainWindow) +{ + ui->setupUi(this); + ui->label->setText("Hello, World!"); +} + +MainWindow::~MainWindow() +{ + delete ui; +} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..404d47a --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,11 @@ +#include +#include "MainWindow.hpp" + +int main(int argc, char** argv) +{ + QApplication app(argc, argv); + MainWindow window; + window.show(); + + return app.exec(); +} \ No newline at end of file