diff --git a/CMakeLists.txt b/CMakeLists.txt
index d8c64ff..91e42d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.3)
cmake_policy(VERSION 3.0.2..3.7)
# Название и версия проекта и используемые языки программирования
-project(cmlib-example-app-qt5-con VERSION 0.2.0 LANGUAGES C CXX)
+project(cmlib-example-app-qt5-gui VERSION 0.2.0 LANGUAGES C CXX)
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
@@ -24,7 +24,7 @@ set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.55.0 REQUIRED COMPONENTS headers)
# Qt5
-find_package(Qt5 COMPONENTS Core REQUIRED)
+find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
# Автоматически генерируемый заголовочный файл
cmlib_config_hpp_generate()
@@ -51,5 +51,5 @@ add_subdirectory(src/cmlib-example)
add_subdirectory(cmake/doc)
# Создание вспомогательных символических ссылок
-add_dependencies(cmlib-example-app-qt5-con create_auxilary_symlinks)
+add_dependencies(cmlib-example-app-qt5-gui create_auxilary_symlinks)
diff --git a/cmake/cmlib b/cmake/cmlib
index 4768c5e..f168386 160000
--- a/cmake/cmlib
+++ b/cmake/cmlib
@@ -1 +1 @@
-Subproject commit 4768c5efc7ce3ca9fc80baf72df303e91f348a96
+Subproject commit f168386296177c0d4c16ccd814edb4b6c327b8b1
diff --git a/files/data/icon.png b/files/data/icon.png
new file mode 100644
index 0000000..499a717
Binary files /dev/null and b/files/data/icon.png differ
diff --git a/files/data/icon.qrc b/files/data/icon.qrc
new file mode 100644
index 0000000..444fd96
--- /dev/null
+++ b/files/data/icon.qrc
@@ -0,0 +1,5 @@
+
+
+ icon.png
+
+
diff --git a/l10n/cmlib-example-app-qt5-con_ru_RU.ts b/l10n/cmlib-example-app-qt5-gui_ru_RU.ts
similarity index 50%
rename from l10n/cmlib-example-app-qt5-con_ru_RU.ts
rename to l10n/cmlib-example-app-qt5-gui_ru_RU.ts
index b0aeb63..e4e56fe 100644
--- a/l10n/cmlib-example-app-qt5-con_ru_RU.ts
+++ b/l10n/cmlib-example-app-qt5-gui_ru_RU.ts
@@ -4,14 +4,27 @@
QObject
-
+
Нет
-
+
Да
+
+ TestWindow
+
+
+
+ Тестовое окно
+
+
+
+
+ Нажми меня
+
+
diff --git a/src/cmlib-example/CMakeLists.txt b/src/cmlib-example/CMakeLists.txt
index 700ad28..beec06e 100644
--- a/src/cmlib-example/CMakeLists.txt
+++ b/src/cmlib-example/CMakeLists.txt
@@ -1,14 +1,44 @@
# Название основной цели и имя библиотеки в текущем каталоге
-set(TRGT cmlib-example-app-qt5-con)
+set(TRGT cmlib-example-app-qt5-gui)
-# Список файлов исходных текстов
-set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
+###
+# Списки файлов проекта
+###
+# Исходные коды
+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/data/icon.qrc)
+###
+# Конец списка файлов
+###
+
+# Правило для автоматической генерации препроцессором uic
+qt5_wrap_ui(TRGT_ui_h ${TRGT_ui})
+
+# Правило для автоматической генерации препроцессором moc
+qt5_wrap_cpp(TRGT_moc_cpp ${TRGT_moc_hpp})
# Правила для создания файла ресурсов с вложенными файлами переводов
qt5_translation(
TRGT_qrc
OUTPUT_DIR ${CMAKE_SOURCE_DIR}/l10n BASE_NAME ${TRGT}
- SOURCES ${TRGT_cpp} LANGUAGES ru_RU)
+ SOURCES ${TRGT_cpp} ${TRGT_ui} LANGUAGES ru_RU)
# Путь поиска библиотек созданных при компиляции проекта,
# включая библиотеки из подключённых внешних проектов, например MyXLib
@@ -17,14 +47,16 @@ qt5_translation(
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
# Функция для создания цели, результатом которой будет сборка приложения
-add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
+add_executable(${TRGT} ${TRGT_ui_h} ${TRGT_moc_cpp} ${TRGT_qrc} ${TRGT_cpp})
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)
+target_link_libraries(${TRGT} Qt5::Core Qt5::Gui Qt5::Widgets)
# Добавление к пути поиска заголовочных файлов
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
diff --git a/src/cmlib-example/main.cpp b/src/cmlib-example/main.cpp
index 4361522..28a4802 100644
--- a/src/cmlib-example/main.cpp
+++ b/src/cmlib-example/main.cpp
@@ -1,20 +1,25 @@
#include "cmlib_private_config.hpp"
+#include "test_window.hpp"
#include
-#include
+#include
+#include
#include
namespace MQ = myx::qt;
int main( int argc, char** argv )
{
- QCoreApplication app( argc, argv );
+ QApplication app( argc, argv );
MQ::QTranslatorsList tl;
qDebug() << QObject::tr( "No" );
MQ::append_translators( tl, QStringLiteral( CMLIB_PROJECT_NAME ) );
qDebug() << QObject::tr( "Yes" );
- return( 0 );
+ QApplication::setWindowIcon( QIcon( ":/icon/icon.png" ) );
+ auto* w = new TestWindow();
+ w->show();
+ return( QApplication::exec() );
}
diff --git a/src/cmlib-example/test_window.cpp b/src/cmlib-example/test_window.cpp
new file mode 100644
index 0000000..2b7d78a
--- /dev/null
+++ b/src/cmlib-example/test_window.cpp
@@ -0,0 +1,10 @@
+#include "test_window.hpp"
+
+TestWindow::TestWindow(QMainWindow* parent) :
+ QMainWindow(parent),
+ Ui::TestWindow()
+{
+ setupUi(this);
+}
+
+TestWindow::~TestWindow() = default;
diff --git a/src/cmlib-example/test_window.hpp b/src/cmlib-example/test_window.hpp
new file mode 100644
index 0000000..a809e7b
--- /dev/null
+++ b/src/cmlib-example/test_window.hpp
@@ -0,0 +1,17 @@
+#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/cmlib-example/test_window.ui b/src/cmlib-example/test_window.ui
new file mode 100644
index 0000000..6f55c01
--- /dev/null
+++ b/src/cmlib-example/test_window.ui
@@ -0,0 +1,34 @@
+
+
+ TestWindow
+
+
+
+ 0
+ 0
+ 413
+ 253
+
+
+
+ Test Window
+
+
+
+
+
+ 170
+ 30
+ 80
+ 26
+
+
+
+ Press me
+
+
+
+
+
+
+
diff --git a/thirdparty/myxlib b/thirdparty/myxlib
index f63c6b8..22cee20 160000
--- a/thirdparty/myxlib
+++ b/thirdparty/myxlib
@@ -1 +1 @@
-Subproject commit f63c6b8302c8cc588a81b8ba888dd0d10c95ea31
+Subproject commit 22cee208d1d9ec40d773e1c19167adaddcc6cc9f