From fa4bd041f4fecfbe2029b80087e0e9bec9e85b5f Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 21 Dec 2021 11:07:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 32 ++++++++++ files/share/icon.png | Bin 0 -> 18538 bytes files/share/icon.qrc | 5 ++ src/myx-cmake-example-qt5-gui/CMakeLists.txt | 56 ++++++++++++++++++ src/myx-cmake-example-qt5-gui/main.cpp | 17 ++++++ src/myx-cmake-example-qt5-gui/test_window.cpp | 11 ++++ src/myx-cmake-example-qt5-gui/test_window.hpp | 18 ++++++ src/myx-cmake-example-qt5-gui/test_window.ui | 34 +++++++++++ 8 files changed, 173 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 files/share/icon.png create mode 100644 files/share/icon.qrc create mode 100644 src/myx-cmake-example-qt5-gui/CMakeLists.txt create mode 100644 src/myx-cmake-example-qt5-gui/main.cpp create mode 100644 src/myx-cmake-example-qt5-gui/test_window.cpp create mode 100644 src/myx-cmake-example-qt5-gui/test_window.hpp create mode 100644 src/myx-cmake-example-qt5-gui/test_window.ui diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1b0a7ed --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,32 @@ +# Минимальная версия CMake +cmake_minimum_required(VERSION 3.3) + +# Предпочтительно следовать стандартам принятым в указанном диапазоне версий +cmake_policy(VERSION 3.0.2..3.7) + +# Название и версия проекта и используемые языки программирования +project(myx-cmake-example-qt5-gui VERSION 0.2.0 LANGUAGES CXX) + +### +# Обязательные переменные для MyxCMake +### +# Название организации +set(MYX_CMAKE_ORGANIZATION_NAME "Org." CACHE STRING "") + +# Имя автора +set(MYX_CMAKE_AUTHOR_NAME "John Doe" CACHE STRING "") + +# Почта автора +set(MYX_CMAKE_AUTHOR_EMAIL "mail@johndoe.com" CACHE STRING "") + +# Краткое описание проекта +set(MYX_CMAKE_DESCRIPTION "Пример проекта: графическая программа Qt5" CACHE STRING "") + +find_package(MyxCMake REQUIRED) + +# Qt5 +find_package(Qt5Core COMPONENTS Private REQUIRED) +find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) + +# Исходные тексты программы +add_subdirectory(src/myx-cmake-example-qt5-gui) diff --git a/files/share/icon.png b/files/share/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..499a717f6fdd2a1e26384367f024db7ca7b66dee GIT binary patch literal 18538 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�I(Y$OGi3ZP^+9 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 Y2Km2nHs(}b7XSbN07*qoM6N<$f})a?ssI20 literal 0 HcmV?d00001 diff --git a/files/share/icon.qrc b/files/share/icon.qrc new file mode 100644 index 0000000..444fd96 --- /dev/null +++ b/files/share/icon.qrc @@ -0,0 +1,5 @@ + + + icon.png + + diff --git a/src/myx-cmake-example-qt5-gui/CMakeLists.txt b/src/myx-cmake-example-qt5-gui/CMakeLists.txt new file mode 100644 index 0000000..9da5406 --- /dev/null +++ b/src/myx-cmake-example-qt5-gui/CMakeLists.txt @@ -0,0 +1,56 @@ +# Название основной цели и имени программы в текущем каталоге +set(TRGT myx-cmake-example-qt5-gui) + +# cmake-format: off +### +# Списки файлов проекта +### +# Исходные коды +set(TRGT_cpp + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/test_window.cpp) + +# Заголовочные файлы, для которых необходима обработка препроцессором moc +# (содержат класс, унаследованный от QObject, использующий сигналы и/или слоты) +set(TRGT_moc_hpp + ${CMAKE_CURRENT_SOURCE_DIR}/test_window.hpp) + +# Другие заголовочные файлы +set(TRGT_hpp) + +# Файлы с описанием графического интерфейса для Qt +set(TRGT_ui + ${CMAKE_CURRENT_SOURCE_DIR}/test_window.ui) + +# Файлы описания ресурсов, включаемых в исполняемый файл +set(TRGT_qrc + ${CMAKE_SOURCE_DIR}/files/share/icon.qrc) +### +# Конец списков файлов +### +# cmake-format: on + +set(TRGT_headers ${TRGT_hpp} ${TRGT_moc_hpp}) + +# Правило для автоматической генерации препроцессором uic +qt5_wrap_ui(TRGT_ui_h ${TRGT_ui}) + +# Правило для автоматической генерации препроцессором moc +qt5_wrap_cpp(TRGT_moc_cpp ${TRGT_moc_hpp}) + +# Правило для автоматической генерации препроцессором qrc +# (обязательно после вызова функции qt5_translation, если она есть, +# так как она добавляет свои файлы к списку ресурсов) +qt5_add_resources(TRTG_qrc_cpp ${TRGT_qrc}) + +# Функция для создания цели, результатом которой будет сборка приложения +add_executable(${TRGT} ${TRGT_headers} ${TRGT_ui_h} ${TRGT_moc_cpp} ${TRGT_qrc_cpp} ${TRGT_cpp}) +myx_cmake_common_target_properties(${TRGT}) + +# Qt5: подключение заголовочных файлов +target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) +target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Gui_INCLUDE_DIRS}) +target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Widgets_INCLUDE_DIRS}) + +# Qt5: подключение библиотек +target_link_libraries(${TRGT} Qt5::Core Qt5::Gui Qt5::Widgets) diff --git a/src/myx-cmake-example-qt5-gui/main.cpp b/src/myx-cmake-example-qt5-gui/main.cpp new file mode 100644 index 0000000..76370cc --- /dev/null +++ b/src/myx-cmake-example-qt5-gui/main.cpp @@ -0,0 +1,17 @@ +#include "test_window.hpp" + +#include +#include + +int main( int argc, char** argv ) +{ + QApplication app( argc, argv ); + + // Установка иконки для программы + QApplication::setWindowIcon( QIcon( ":/icon/icon.png" ) ); + + // Создание и отображение главного окна + auto* w = new TestWindow(); + w->show(); + return( QApplication::exec() ); +} diff --git a/src/myx-cmake-example-qt5-gui/test_window.cpp b/src/myx-cmake-example-qt5-gui/test_window.cpp new file mode 100644 index 0000000..1442154 --- /dev/null +++ b/src/myx-cmake-example-qt5-gui/test_window.cpp @@ -0,0 +1,11 @@ +#include "test_window.hpp" + +TestWindow::TestWindow( QMainWindow* parent ) : + QMainWindow ( parent ), + Ui::TestWindow() +{ + setupUi( this ); +} + + +TestWindow::~TestWindow() = default; diff --git a/src/myx-cmake-example-qt5-gui/test_window.hpp b/src/myx-cmake-example-qt5-gui/test_window.hpp new file mode 100644 index 0000000..db08425 --- /dev/null +++ b/src/myx-cmake-example-qt5-gui/test_window.hpp @@ -0,0 +1,18 @@ +#ifndef TEST_WINDOW_HPP_ +#define TEST_WINDOW_HPP_ + +#pragma once + +#include "ui_test_window.h" + +#include + +class TestWindow : public QMainWindow, private Ui::TestWindow +{ + Q_OBJECT +public: + TestWindow( QMainWindow* parent = nullptr ); + virtual ~TestWindow(); +}; + +#endif /* TEST_WINDOW_HPP_ */ diff --git a/src/myx-cmake-example-qt5-gui/test_window.ui b/src/myx-cmake-example-qt5-gui/test_window.ui new file mode 100644 index 0000000..6f55c01 --- /dev/null +++ b/src/myx-cmake-example-qt5-gui/test_window.ui @@ -0,0 +1,34 @@ + + + TestWindow + + + + 0 + 0 + 413 + 253 + + + + Test Window + + + + + + 170 + 30 + 80 + 26 + + + + Press me + + + + + + +