Файлы проекта
This commit is contained in:
parent
21023a542a
commit
fa4bd041f4
32
CMakeLists.txt
Normal file
32
CMakeLists.txt
Normal file
@ -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)
|
BIN
files/share/icon.png
Normal file
BIN
files/share/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
5
files/share/icon.qrc
Normal file
5
files/share/icon.qrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/icon">
|
||||||
|
<file alias="icon.png">icon.png</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
56
src/myx-cmake-example-qt5-gui/CMakeLists.txt
Normal file
56
src/myx-cmake-example-qt5-gui/CMakeLists.txt
Normal file
@ -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)
|
17
src/myx-cmake-example-qt5-gui/main.cpp
Normal file
17
src/myx-cmake-example-qt5-gui/main.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include "test_window.hpp"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QIcon>
|
||||||
|
|
||||||
|
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() );
|
||||||
|
}
|
11
src/myx-cmake-example-qt5-gui/test_window.cpp
Normal file
11
src/myx-cmake-example-qt5-gui/test_window.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "test_window.hpp"
|
||||||
|
|
||||||
|
TestWindow::TestWindow( QMainWindow* parent ) :
|
||||||
|
QMainWindow ( parent ),
|
||||||
|
Ui::TestWindow()
|
||||||
|
{
|
||||||
|
setupUi( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TestWindow::~TestWindow() = default;
|
18
src/myx-cmake-example-qt5-gui/test_window.hpp
Normal file
18
src/myx-cmake-example-qt5-gui/test_window.hpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef TEST_WINDOW_HPP_
|
||||||
|
#define TEST_WINDOW_HPP_
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "ui_test_window.h"
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
|
class TestWindow : public QMainWindow, private Ui::TestWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
TestWindow( QMainWindow* parent = nullptr );
|
||||||
|
virtual ~TestWindow();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* TEST_WINDOW_HPP_ */
|
34
src/myx-cmake-example-qt5-gui/test_window.ui
Normal file
34
src/myx-cmake-example-qt5-gui/test_window.ui
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>TestWindow</class>
|
||||||
|
<widget class="QMainWindow" name="TestWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>413</width>
|
||||||
|
<height>253</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Test Window</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<widget class="QPushButton" name="exitButton">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>170</x>
|
||||||
|
<y>30</y>
|
||||||
|
<width>80</width>
|
||||||
|
<height>26</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Press me</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user