From 3b6ecaa5e9ca4f18311a62ef4e2ed0bc42578be8 Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sat, 24 Dec 2022 10:11:33 -0500 Subject: [PATCH] [cpp] Add Qt Desginer widget plugin examples --- .gitignore | 1 + cpp/qt/CMakeLists.txt | 4 +- cpp/qt/README.md | 32 +++ .../designer-plugin-collection/CMakeLists.txt | 110 ++++++++++ .../CMakeLists.txt.user | 197 ++++++++++++++++++ cpp/qt/designer-plugin-collection/app-dir.h | 6 + .../designer-plugin-collection/app-dir.h.in | 6 + cpp/qt/designer-plugin-collection/main.cpp | 18 ++ .../designer-plugin-collection/textview.cpp | 10 + cpp/qt/designer-plugin-collection/textview.h | 44 ++++ .../designer-plugin-collection/treeview.cpp | 10 + cpp/qt/designer-plugin-collection/treeview.h | 36 ++++ .../designer-plugin-collection/widgetapp.cpp | 15 ++ cpp/qt/designer-plugin-collection/widgetapp.h | 37 ++++ .../designer-plugin-collection/widgetapp.ui | 107 ++++++++++ .../widgetplugin.cpp | 52 +++++ .../designer-plugin-collection/widgetplugin.h | 52 +++++ .../widgetplugincollection.cpp | 28 +++ .../widgetplugincollection.h | 22 ++ cpp/qt/designer-plugin/CMakeLists.txt | 76 +++++++ cpp/qt/designer-plugin/CMakeLists.txt.user | 197 ++++++++++++++++++ cpp/qt/designer-plugin/main.cpp | 18 ++ cpp/qt/designer-plugin/text-view.cpp | 10 + cpp/qt/designer-plugin/text-view.h | 40 ++++ cpp/qt/designer-plugin/widget-app.cpp | 16 ++ cpp/qt/designer-plugin/widget-app.h | 38 ++++ cpp/qt/designer-plugin/widget-app.ui | 33 +++ cpp/qt/designer-plugin/widget-plugin.cpp | 67 ++++++ cpp/qt/designer-plugin/widget-plugin.h | 45 ++++ cpp/qt/designer/CMakeLists.txt.user | 9 +- cpp/qt/plugin-render-view.png | Bin 0 -> 85205 bytes cpp/qt/side-panel-view.png | Bin 0 -> 30584 bytes cpp/qt/slots/text-view.h | 2 +- 33 files changed, 1333 insertions(+), 5 deletions(-) create mode 100644 cpp/qt/README.md create mode 100644 cpp/qt/designer-plugin-collection/CMakeLists.txt create mode 100644 cpp/qt/designer-plugin-collection/CMakeLists.txt.user create mode 100644 cpp/qt/designer-plugin-collection/app-dir.h create mode 100644 cpp/qt/designer-plugin-collection/app-dir.h.in create mode 100644 cpp/qt/designer-plugin-collection/main.cpp create mode 100644 cpp/qt/designer-plugin-collection/textview.cpp create mode 100644 cpp/qt/designer-plugin-collection/textview.h create mode 100644 cpp/qt/designer-plugin-collection/treeview.cpp create mode 100644 cpp/qt/designer-plugin-collection/treeview.h create mode 100644 cpp/qt/designer-plugin-collection/widgetapp.cpp create mode 100644 cpp/qt/designer-plugin-collection/widgetapp.h create mode 100644 cpp/qt/designer-plugin-collection/widgetapp.ui create mode 100644 cpp/qt/designer-plugin-collection/widgetplugin.cpp create mode 100644 cpp/qt/designer-plugin-collection/widgetplugin.h create mode 100644 cpp/qt/designer-plugin-collection/widgetplugincollection.cpp create mode 100644 cpp/qt/designer-plugin-collection/widgetplugincollection.h create mode 100644 cpp/qt/designer-plugin/CMakeLists.txt create mode 100644 cpp/qt/designer-plugin/CMakeLists.txt.user create mode 100644 cpp/qt/designer-plugin/main.cpp create mode 100644 cpp/qt/designer-plugin/text-view.cpp create mode 100644 cpp/qt/designer-plugin/text-view.h create mode 100644 cpp/qt/designer-plugin/widget-app.cpp create mode 100644 cpp/qt/designer-plugin/widget-app.h create mode 100644 cpp/qt/designer-plugin/widget-app.ui create mode 100644 cpp/qt/designer-plugin/widget-plugin.cpp create mode 100644 cpp/qt/designer-plugin/widget-plugin.h create mode 100644 cpp/qt/plugin-render-view.png create mode 100644 cpp/qt/side-panel-view.png diff --git a/.gitignore b/.gitignore index d0095d5..b71b875 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ **/Makefile **/*.cbp **/node-modules/ +**/CmakeLists.txt.user diff --git a/cpp/qt/CMakeLists.txt b/cpp/qt/CMakeLists.txt index 35a6d95..4d6c0d8 100644 --- a/cpp/qt/CMakeLists.txt +++ b/cpp/qt/CMakeLists.txt @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.15) project( #[[NAME]] Klips VERSION 1.0 - DESCRIPTION "A root project for several small cpp practice projects" + DESCRIPTION "A root project for several small Qt6 practice projects" LANGUAGES CXX ) @@ -19,4 +19,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) add_compile_options("-Wall") add_subdirectory(designer) +add_subdirectory(designer-plugin) +add_subdirectory(designer-plugin-collection) add_subdirectory(slots) diff --git a/cpp/qt/README.md b/cpp/qt/README.md new file mode 100644 index 0000000..4fa69bd --- /dev/null +++ b/cpp/qt/README.md @@ -0,0 +1,32 @@ +# Cpp + +```bash +shaunrd0/klips/cpp/qt/ +├── designer # Using Qt Designer to create application GUI +├── designer-plugin # Adding custom widgets as Qt Designer plugins +├── designer-plugin-collection # Adding a collection of widget plugins to Qt Designer +└── README.md +``` + +This directory contains a `CMakeLists.txt`, which can be selected to open as a +project within your preferred IDE. From there, all nested examples can be built, +debugged, and ran. + +The plugin examples will need to be installed for Qt Designer integration to work. +On Linux, Qt Designer looks under `/some/path/to/Qt/Tools/QtCreator/lib/Qt/plugins/designer/`. +On windows or Mac, this path may differ. Unfortunately I don't have these machines to test for myself. + +```bash +cd klips/cpp/qt/designer-plugin-collection +mkdir build && cd build +cmake .. && cmake --build . --target install +``` + +After installing the plugin collection example above, we can open Qt Creator and navigate to the Designer. +We should see the custom collection is available within the Designer, and the contents of the widgets render correctly in the application view. + + +![side-panel-view.png](side-panel-view.png) + + +![plugin-render-view.png](plugin-render-view.png) diff --git a/cpp/qt/designer-plugin-collection/CMakeLists.txt b/cpp/qt/designer-plugin-collection/CMakeLists.txt new file mode 100644 index 0000000..eb32921 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/CMakeLists.txt @@ -0,0 +1,110 @@ +################################################################################ +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example of making a collection of widget plugins for Qt Designer ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ + +cmake_minimum_required(VERSION 3.15) + +project( + #[[NAME]] DesignerPluginCollection + VERSION 1.0 + DESCRIPTION "Example of a widget plugin collection for Qt Designer" + LANGUAGES CXX +) + +include(GenerateExportHeader) + +add_compile_options(-Wall) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_SHARED_MODULE_PREFIX "") + +set(QT_DIR "$ENV{HOME}/Code/Clones/Qt/" CACHE PATH "Path to Qt6") +# Qt Designer will look in different locations if WIN / Unix. +# These paths are for using Qt Designer integrated within Qt Creator. +# Standalone Qt Designer may use different paths. +if (WIN32) + set(QT_PLUGIN_INSTALL_DIR + "${QT_DIR}/Tools/QtCreator/bin/plugins/designer" + ) + # This path may be different on windows. I have not tested this. + set(QT_PLUGIN_LIBRARY_DIR + "${QT_DIR}/Tools/QtCreator/lib/Qt/lib" + ) +else() + set(QT_PLUGIN_INSTALL_DIR + "${QT_DIR}/Tools/QtCreator/lib/Qt/plugins/designer" + ) + set(QT_PLUGIN_LIBRARY_DIR + "${QT_DIR}/Tools/QtCreator/lib/Qt/lib" + ) +endif() +# This should be set to your Qt6 installation directory. +set(QT_INSTALL_DIR "${QT_DIR}/6.3.1/gcc_64/" CACHE PATH "Path to Qt6 install") +list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}") + +find_package(Qt6 REQUIRED COMPONENTS UiPlugin Core Gui Widgets) + +# Creating a library with two plugins for the collection. +qt_add_library(widget-plugin-library + textview.cpp textview.h + widgetplugin.cpp widgetplugin.h +) +target_sources(widget-plugin-library PRIVATE + textview.cpp textview.h + treeview.cpp treeview.h + widgetplugin.cpp widgetplugin.h +) +set_target_properties(widget-plugin-library PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(widget-plugin-library + PUBLIC Qt::UiPlugin Qt::Core Qt::Gui Qt::Widgets +) + +install(TARGETS widget-plugin-library + RUNTIME DESTINATION "${QT_PLUGIN_LIBRARY_DIR}" + BUNDLE DESTINATION "${QT_PLUGIN_LIBRARY_DIR}" + LIBRARY DESTINATION "${QT_PLUGIN_LIBRARY_DIR}" +) + +generate_export_header(widget-plugin-library) + +# Creating the collection + +qt_add_library(widget-plugin-collection + widgetplugincollection.cpp widgetplugincollection.h +) +target_link_libraries(widget-plugin-collection + Qt6::Widgets Qt6::UiPlugin widget-plugin-library +) +install(TARGETS widget-plugin-collection + RUNTIME DESTINATION "${QT_PLUGIN_INSTALL_DIR}" + BUNDLE DESTINATION "${QT_PLUGIN_INSTALL_DIR}" + LIBRARY DESTINATION "${QT_PLUGIN_INSTALL_DIR}" +) + +# Application that will use the widget plugin + +set(APP_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/app-dir.h.in" + "${CMAKE_CURRENT_SOURCE_DIR}/app-dir.h" + @ONLY +) + +qt_add_executable(widget-app + widgetapp.cpp widgetapp.h widgetapp.ui + main.cpp +) +target_link_libraries(widget-app + PRIVATE Qt::Widgets widget-plugin-library +) diff --git a/cpp/qt/designer-plugin-collection/CMakeLists.txt.user b/cpp/qt/designer-plugin-collection/CMakeLists.txt.user new file mode 100644 index 0000000..e54475c --- /dev/null +++ b/cpp/qt/designer-plugin-collection/CMakeLists.txt.user @@ -0,0 +1,197 @@ + + + + + + EnvironmentId + {ce8a8d3d-318d-4c62-a573-71d1755252ce} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Qt 6.3.1 GCC 64bit + Qt 6.3.1 GCC 64bit + {70d5e2e6-ad48-44fa-b4dd-c54058c4b48b} + 0 + 0 + 0 + + Debug + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + /home/kapper/Code/klips/cpp/qt/designer-plugin-collection + /home/kapper/Code/klips/cpp/qt/designer-plugin-collection/cmake-build-debug + + + + + all + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + 1 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + widget-app + CMakeProjectManager.CMakeRunConfiguration.widget-app + widget-app + false + true + true + false + true + /home/kapper/Code/klips/cpp/qt/designer-plugin-collection/cmake-build-debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/cpp/qt/designer-plugin-collection/app-dir.h b/cpp/qt/designer-plugin-collection/app-dir.h new file mode 100644 index 0000000..5a37bb5 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/app-dir.h @@ -0,0 +1,6 @@ +#ifndef APPDIR_H_IN +#define APPDIR_H_IN + +#define APP_DIR "/home/kapper/Code/klips/cpp/qt/designer-plugin-collection" + +#endif // APPDIR_H_IN diff --git a/cpp/qt/designer-plugin-collection/app-dir.h.in b/cpp/qt/designer-plugin-collection/app-dir.h.in new file mode 100644 index 0000000..0d5dd20 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/app-dir.h.in @@ -0,0 +1,6 @@ +#ifndef APPDIR_H_IN +#define APPDIR_H_IN + +#define APP_DIR "@APP_DIR@" + +#endif // APPDIR_H_IN diff --git a/cpp/qt/designer-plugin-collection/main.cpp b/cpp/qt/designer-plugin-collection/main.cpp new file mode 100644 index 0000000..5d002db --- /dev/null +++ b/cpp/qt/designer-plugin-collection/main.cpp @@ -0,0 +1,18 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Main driver fprogram for practice using signals and slots in Qt ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widgetapp.h" +#include + +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + WidgetApp widgetApp; + widgetApp.show(); + return app.exec(); +} diff --git a/cpp/qt/designer-plugin-collection/textview.cpp b/cpp/qt/designer-plugin-collection/textview.cpp new file mode 100644 index 0000000..998796a --- /dev/null +++ b/cpp/qt/designer-plugin-collection/textview.cpp @@ -0,0 +1,10 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Text viewer for signals and slots examples ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "textview.h" diff --git a/cpp/qt/designer-plugin-collection/textview.h b/cpp/qt/designer-plugin-collection/textview.h new file mode 100644 index 0000000..a6111bc --- /dev/null +++ b/cpp/qt/designer-plugin-collection/textview.h @@ -0,0 +1,44 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Text viewer for signals and slots examples ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_TEXTVIEW_H +#define KLIPS_TEXTVIEW_H + +#include "widget-plugin-library_export.h" +#include + +class WIDGET_PLUGIN_LIBRARY_EXPORT TextView : public QPlainTextEdit { + Q_OBJECT + +public: + explicit TextView(QWidget *parent = nullptr) : QPlainTextEdit(parent) { + appendPlainText("This is an example of a custom QTextView widget."); + } + + ~TextView() = default; + + QString includeFile() const { return QStringLiteral("text-view.h"); }; +public: +signals: + void sendTest(); + +private: +signals: + void sentTestPrivate(); + +public slots: + void test() { appendPlainText("Test signal received by TextView."); } + + void testArgs(const QString &message) { appendPlainText(message); } + +private slots: + void testPrivate() {} +}; + +#endif // KLIPS_TEXTVIEW_H diff --git a/cpp/qt/designer-plugin-collection/treeview.cpp b/cpp/qt/designer-plugin-collection/treeview.cpp new file mode 100644 index 0000000..c39d86e --- /dev/null +++ b/cpp/qt/designer-plugin-collection/treeview.cpp @@ -0,0 +1,10 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Tree viewer ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "treeview.h" diff --git a/cpp/qt/designer-plugin-collection/treeview.h b/cpp/qt/designer-plugin-collection/treeview.h new file mode 100644 index 0000000..5848998 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/treeview.h @@ -0,0 +1,36 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Tree viewer ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_TREEVIEW_H +#define KLIPS_TREEVIEW_H + +#include "widget-plugin-library_export.h" +#include + +#include +#include +#include + +class WIDGET_PLUGIN_LIBRARY_EXPORT TreeView : public QTreeView { + Q_OBJECT + +public: + explicit TreeView(QWidget *parent = nullptr) : QTreeView(parent) { + QFileSystemModel *model = new QFileSystemModel; + QSortFilterProxyModel *proxy = new QSortFilterProxyModel(this); + QModelIndex rootModelIndex = model->setRootPath(APP_DIR); + proxy->setSourceModel(model); + setModel(proxy); + setRootIndex(proxy->mapFromSource(rootModelIndex)); + } + + ~TreeView() = default; +}; + +#endif // KLIPS_TREEVIEW_H diff --git a/cpp/qt/designer-plugin-collection/widgetapp.cpp b/cpp/qt/designer-plugin-collection/widgetapp.cpp new file mode 100644 index 0000000..5fb58c1 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetapp.cpp @@ -0,0 +1,15 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Application that uses widget from the collection ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widgetapp.h" + +WidgetApp::WidgetApp(QWidget *parent) : QMainWindow(parent) { + m_widgetApp = new Ui::MainWindow; + m_widgetApp->setupUi(this); +} diff --git a/cpp/qt/designer-plugin-collection/widgetapp.h b/cpp/qt/designer-plugin-collection/widgetapp.h new file mode 100644 index 0000000..56e5b61 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetapp.h @@ -0,0 +1,37 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Application that uses a custom Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_WIDGETAPP_H +#define KLIPS_WIDGETAPP_H + +#include +#include +#include +#include +#include + +#include "ui_widgetapp.h" + +class WidgetApp : public QMainWindow { + Q_OBJECT + +public: + explicit WidgetApp(QWidget *parent = nullptr); + ~WidgetApp() = default; + + Ui::MainWindow * m_widgetApp; +public: +signals: + void sendTest(); + +public slots: + void test(){}; +}; + +#endif // KLIPS_WIDGETAPP_H diff --git a/cpp/qt/designer-plugin-collection/widgetapp.ui b/cpp/qt/designer-plugin-collection/widgetapp.ui new file mode 100644 index 0000000..c367f60 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetapp.ui @@ -0,0 +1,107 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + true + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + 800 + 22 + + + + + File + + + + + + + + + Edit + + + + + Help + + + + + + + + + + 1 + + + + + + + + + + + + Option1 + + + + + Option2 + + + + + Section 2 + + + + + + TreeView + QWidget +
treeview.h
+
+ + TextView + QWidget +
textview.h
+
+
+ + +
diff --git a/cpp/qt/designer-plugin-collection/widgetplugin.cpp b/cpp/qt/designer-plugin-collection/widgetplugin.cpp new file mode 100644 index 0000000..92389ca --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetplugin.cpp @@ -0,0 +1,52 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example of a generic Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widgetplugin.h" +#include "textview.h" + +#include +#include + +WidgetPlugin::WidgetPlugin(QString group, QString name, + WidgetPlugin::Factory factory) + : m_group(std::move(group)), m_name(std::move(name)), + m_includeFile(name + ".h"), m_factory(std::move(factory)) {} + +WidgetPlugin::WidgetPlugin(QString group, QString name, QString include, + WidgetPlugin::Factory factory) + : m_group(std::move(group)), m_name(std::move(name)), + m_includeFile(std::move(include)), m_factory(std::move(factory)) {} + +QString WidgetPlugin::toolTip() const { return {}; } + +QString WidgetPlugin::whatsThis() const { return {}; } + +QIcon WidgetPlugin::icon() const { return {}; } + +bool WidgetPlugin::isContainer() const { return false; } + +QString WidgetPlugin::group() const { return m_group; } + +QString WidgetPlugin::name() const { return m_name; } + +// TODO: The generated UI headers do not use this member appropriately. +QString WidgetPlugin::includeFile() const { return m_includeFile; } + +QWidget *WidgetPlugin::createWidget(QWidget *parent) { + return m_factory(parent); +} + +bool WidgetPlugin::isInitialized() const { return m_initialized; } + +void WidgetPlugin::initialize(QDesignerFormEditorInterface *) { + if (m_initialized) + return; + + m_initialized = true; +} diff --git a/cpp/qt/designer-plugin-collection/widgetplugin.h b/cpp/qt/designer-plugin-collection/widgetplugin.h new file mode 100644 index 0000000..93c7757 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetplugin.h @@ -0,0 +1,52 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_WIDGETPLUGIN_H +#define KLIPS_WIDGETPLUGIN_H + +#include + +class WidgetPlugin : public QObject, public QDesignerCustomWidgetInterface { + Q_OBJECT + Q_PLUGIN_METADATA(IID "com.Klips.WidgetPlugin") + Q_INTERFACES(QDesignerCustomWidgetInterface) + + using Factory = std::function; + +public: + WidgetPlugin(QString group, QString name, Factory factory); + WidgetPlugin(QString group, QString name, QString include, Factory factory); + + explicit WidgetPlugin(QObject *parent = nullptr) : QObject(parent) {} + + ~WidgetPlugin() = default; + +public: + [[nodiscard]] QString group() const override; + [[nodiscard]] QString name() const override; + [[nodiscard]] QString includeFile() const override; + QWidget *createWidget(QWidget *parent) override; + + [[nodiscard]] QString toolTip() const override; + [[nodiscard]] QString whatsThis() const override; + [[nodiscard]] QIcon icon() const override; + [[nodiscard]] bool isContainer() const override; + [[nodiscard]] bool isInitialized() const override; + void initialize(QDesignerFormEditorInterface *core) override; + +private: + bool m_initialized = false; + + QString m_group; + QString m_name; + QString m_includeFile; + Factory m_factory; +}; + +#endif // KLIPS_WIDGETPLUGIN_H diff --git a/cpp/qt/designer-plugin-collection/widgetplugincollection.cpp b/cpp/qt/designer-plugin-collection/widgetplugincollection.cpp new file mode 100644 index 0000000..f144d7a --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetplugincollection.cpp @@ -0,0 +1,28 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Collection of widget plugins for Qt Designer ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widgetplugincollection.h" +#include "textview.h" +#include "treeview.h" +#include "widgetplugin.h" + +WidgetPluginCollection::WidgetPluginCollection(QObject *parent) + : QObject(parent), m_collectionName("Klips Widget Plugin Collection") { + m_collection = { + new WidgetPlugin(m_collectionName, "Text View Widget", "text-view.h", + [](QWidget *parent) { return new TextView(parent); }), + new WidgetPlugin(m_collectionName, "tree-view", + [](QWidget *parent) { return new TreeView(parent); }), + + }; +} +QList +WidgetPluginCollection::customWidgets() const { + return m_collection; +} diff --git a/cpp/qt/designer-plugin-collection/widgetplugincollection.h b/cpp/qt/designer-plugin-collection/widgetplugincollection.h new file mode 100644 index 0000000..89e3282 --- /dev/null +++ b/cpp/qt/designer-plugin-collection/widgetplugincollection.h @@ -0,0 +1,22 @@ + +#ifndef DESIGNERPLUGINCOLLECTION_WIDGETPLUGINCOLLECTION_H +#define DESIGNERPLUGINCOLLECTION_WIDGETPLUGINCOLLECTION_H + +#include + +class WidgetPluginCollection : public QObject, + public QDesignerCustomWidgetCollectionInterface { + Q_OBJECT + Q_PLUGIN_METADATA(IID "com.Klips.WidgetPluginCollection") + Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) + +public: + explicit WidgetPluginCollection(QObject *parent = nullptr); + [[nodiscard]] QList customWidgets() const; + +private: + QList m_collection; + QString m_collectionName; +}; + +#endif // DESIGNERPLUGINCOLLECTION_WIDGETPLUGINCOLLECTION_H diff --git a/cpp/qt/designer-plugin/CMakeLists.txt b/cpp/qt/designer-plugin/CMakeLists.txt new file mode 100644 index 0000000..df170ac --- /dev/null +++ b/cpp/qt/designer-plugin/CMakeLists.txt @@ -0,0 +1,76 @@ +################################################################################ +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example of making widget plugins for Qt Designer ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ + +cmake_minimum_required(VERSION 3.15) + +project( + #[[NAME]] DesignerPlugin + VERSION 1.0 + DESCRIPTION "Example of a widget plugin for Qt Designer" + LANGUAGES CXX +) + +include(GenerateExportHeader) + +add_compile_options(-Wall) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_SHARED_MODULE_PREFIX "") + +set(QT_DIR "$ENV{HOME}/Code/Clones/Qt/" CACHE PATH "Path to Qt6") +# Qt Designer will look in different locations if WIN / Unix. +if (WIN32) + set(QT_PLUGIN_INSTALL_DIR + "${QT_DIR}/Tools/QtCreator/bin/plugins/designer" + ) +else() + set(QT_PLUGIN_INSTALL_DIR + "${QT_DIR}/Tools/QtCreator/lib/Qt/plugins/designer" + ) +endif() +# This should be set to your Qt6 installation directory. +set(QT_INSTALL_DIR "${QT_DIR}/6.3.1/gcc_64/" CACHE PATH "Path to Qt6 install") +list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}") + +find_package(Qt6 REQUIRED COMPONENTS UiPlugin Core Gui Widgets) + +# Creating the plugin + +qt_add_library(widget-plugin) +target_sources(widget-plugin PRIVATE + text-view.cpp text-view.h + widget-plugin.cpp widget-plugin.h +) +set_target_properties(widget-plugin PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(widget-plugin PUBLIC + Qt::UiPlugin Qt::Core Qt::Gui Qt::Widgets +) + +install(TARGETS widget-plugin + RUNTIME DESTINATION "${QT_PLUGIN_INSTALL_DIR}" + BUNDLE DESTINATION "${QT_PLUGIN_INSTALL_DIR}" + LIBRARY DESTINATION "${QT_PLUGIN_INSTALL_DIR}" +) + +# Application that will use the widget plugin + +qt_add_executable(widget-app + widget-app.cpp widget-app.h widget-app.ui + main.cpp +) +target_link_libraries(widget-app PRIVATE + Qt::Widgets widget-plugin +) diff --git a/cpp/qt/designer-plugin/CMakeLists.txt.user b/cpp/qt/designer-plugin/CMakeLists.txt.user new file mode 100644 index 0000000..0d323a4 --- /dev/null +++ b/cpp/qt/designer-plugin/CMakeLists.txt.user @@ -0,0 +1,197 @@ + + + + + + EnvironmentId + {ce8a8d3d-318d-4c62-a573-71d1755252ce} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Qt 6.3.1 GCC 64bit + Qt 6.3.1 GCC 64bit + {70d5e2e6-ad48-44fa-b4dd-c54058c4b48b} + 0 + 0 + 0 + + Debug + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + /home/kapper/Code/klips/cpp/qt/designer-plugin + /home/kapper/Code/klips/cpp/qt/designer-plugin/cmake-build-debug + + + + + all + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + Build + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + 1 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + widget-app + CMakeProjectManager.CMakeRunConfiguration.widget-app + widget-app + false + true + true + false + true + /home/kapper/Code/klips/cpp/qt/designer-plugin/cmake-build-debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/cpp/qt/designer-plugin/main.cpp b/cpp/qt/designer-plugin/main.cpp new file mode 100644 index 0000000..8b30883 --- /dev/null +++ b/cpp/qt/designer-plugin/main.cpp @@ -0,0 +1,18 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Main driver fprogram for practice using signals and slots in Qt ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widget-app.h" +#include + +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + WidgetApp widgetApp; + widgetApp.show(); + return app.exec(); +} diff --git a/cpp/qt/designer-plugin/text-view.cpp b/cpp/qt/designer-plugin/text-view.cpp new file mode 100644 index 0000000..226f195 --- /dev/null +++ b/cpp/qt/designer-plugin/text-view.cpp @@ -0,0 +1,10 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Text viewer for signals and slots examples ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "text-view.h" diff --git a/cpp/qt/designer-plugin/text-view.h b/cpp/qt/designer-plugin/text-view.h new file mode 100644 index 0000000..d68f2d1 --- /dev/null +++ b/cpp/qt/designer-plugin/text-view.h @@ -0,0 +1,40 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Text viewer for signals and slots examples ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_TEXTVIEW_H +#define KLIPS_TEXTVIEW_H + +#include + +class TextView : public QPlainTextEdit { + Q_OBJECT + +public: + explicit TextView(QWidget *parent = nullptr) : QPlainTextEdit(parent) { } + + ~TextView() = default; + +public: +signals: + void sendTest(); + +private: +signals: + void sentTestPrivate(); + +public slots: + void test() { appendPlainText("Test signal received by TextView."); } + + void testArgs(const QString &message) { appendPlainText(message); } + +private slots: + void testPrivate() {} +}; + +#endif // KLIPS_TEXTVIEW_H diff --git a/cpp/qt/designer-plugin/widget-app.cpp b/cpp/qt/designer-plugin/widget-app.cpp new file mode 100644 index 0000000..1ab4e2b --- /dev/null +++ b/cpp/qt/designer-plugin/widget-app.cpp @@ -0,0 +1,16 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Application that uses a custom Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widget-app.h" +#include "widget-plugin.h" + +WidgetApp::WidgetApp(QWidget *parent) : QMainWindow(parent) { + m_ui = new Ui::MainWindow; + m_ui->setupUi(this); +} diff --git a/cpp/qt/designer-plugin/widget-app.h b/cpp/qt/designer-plugin/widget-app.h new file mode 100644 index 0000000..32bff47 --- /dev/null +++ b/cpp/qt/designer-plugin/widget-app.h @@ -0,0 +1,38 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Application that uses a custom Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_WIDGETAPP_H +#define KLIPS_WIDGETAPP_H + +#include +#include +#include +#include +#include + +#include "ui_widget-app.h" + +class WidgetApp : public QMainWindow { + Q_OBJECT + +public: + WidgetApp(QWidget *parent = nullptr); + ~WidgetApp() = default; + + Ui::MainWindow *m_ui; + +public: +signals: + void sendTest(); + +public slots: + void test(){}; +}; + +#endif // KLIPS_WIDGETAPP_H diff --git a/cpp/qt/designer-plugin/widget-app.ui b/cpp/qt/designer-plugin/widget-app.ui new file mode 100644 index 0000000..5617c0d --- /dev/null +++ b/cpp/qt/designer-plugin/widget-app.ui @@ -0,0 +1,33 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + + + 0 + 0 + 800 + 22 + + + + + + + + diff --git a/cpp/qt/designer-plugin/widget-plugin.cpp b/cpp/qt/designer-plugin/widget-plugin.cpp new file mode 100644 index 0000000..4b38dd4 --- /dev/null +++ b/cpp/qt/designer-plugin/widget-plugin.cpp @@ -0,0 +1,67 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#include "widget-plugin.h" +#include "text-view.h" + +#include + +QString WidgetPlugin::toolTip() const +{ + return {}; +} + +QString WidgetPlugin::whatsThis() const +{ + return {}; +} + +QIcon WidgetPlugin::icon() const +{ + return {}; +} + +bool WidgetPlugin::isContainer() const +{ + return false; +} + +QString WidgetPlugin::group() const +{ + return m_group; +} + +QString WidgetPlugin::name() const +{ + return QStringLiteral("KlipsWidgetPlugin"); +} + +QString WidgetPlugin::includeFile() const +{ + return QStringLiteral("widget-plugin.h"); +} + +QWidget *WidgetPlugin::createWidget(QWidget *parent) +{ + return new TextView(parent); +} + +bool WidgetPlugin::isInitialized() const +{ + return m_initialized; +} + +void WidgetPlugin::initialize(QDesignerFormEditorInterface *) +{ + + if (m_initialized) + return; + + m_initialized = true; +} diff --git a/cpp/qt/designer-plugin/widget-plugin.h b/cpp/qt/designer-plugin/widget-plugin.h new file mode 100644 index 0000000..cac11ec --- /dev/null +++ b/cpp/qt/designer-plugin/widget-plugin.h @@ -0,0 +1,45 @@ +/*############################################################################## +## Author: Shaun Reed ## +## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ## +## About: Example Qt Designer widget plugin ## +## ## +## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## +################################################################################ +*/ + +#ifndef KLIPS_WIDGETPLUGIN_H +#define KLIPS_WIDGETPLUGIN_H + +#include + +class WidgetPlugin : public QObject, public QDesignerCustomWidgetInterface { +Q_OBJECT +Q_PLUGIN_METADATA(IID "com.Klips.WidgetPlugin") +Q_INTERFACES(QDesignerCustomWidgetInterface) + +public: + explicit WidgetPlugin(QObject *parent = nullptr) : QObject(parent) {} + + ~WidgetPlugin() = default; +public: + QString group() const override; + QString name() const override; + QString includeFile() const override; + QWidget *createWidget(QWidget *parent) override; + + QString toolTip() const override; + QString whatsThis() const override; + QIcon icon() const override; + bool isContainer() const override; + bool isInitialized() const override; + void initialize(QDesignerFormEditorInterface *core) override; + +private: + bool m_initialized = false; + + QString m_group; + QString m_name; + QString m_includeFile; +}; + +#endif // KLIPS_WIDGETPLUGIN_H diff --git a/cpp/qt/designer/CMakeLists.txt.user b/cpp/qt/designer/CMakeLists.txt.user index b4bdb9c..d9861d7 100644 --- a/cpp/qt/designer/CMakeLists.txt.user +++ b/cpp/qt/designer/CMakeLists.txt.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -161,12 +161,15 @@ 2 - ProjectExplorer.CustomExecutableRunConfiguration - + designer + CMakeProjectManager.CMakeRunConfiguration.designer + designer false true + true false true + /home/kapper/Code/klips/cpp/qt/designer/cmake-build-debug 1 diff --git a/cpp/qt/plugin-render-view.png b/cpp/qt/plugin-render-view.png new file mode 100644 index 0000000000000000000000000000000000000000..5794502abafe32420d5cab70a1f5abf57e8a393c GIT binary patch literal 85205 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 F`CqLFa?bz& literal 0 HcmV?d00001 diff --git a/cpp/qt/side-panel-view.png b/cpp/qt/side-panel-view.png new file mode 100644 index 0000000000000000000000000000000000000000..bea8ead2ec11c5d4e13f237ce016bc32e073944b GIT binary patch literal 30584 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 literal 0 HcmV?d00001 diff --git a/cpp/qt/slots/text-view.h b/cpp/qt/slots/text-view.h index a325e9e..f9427ca 100644 --- a/cpp/qt/slots/text-view.h +++ b/cpp/qt/slots/text-view.h @@ -22,7 +22,7 @@ public: public: signals: - void sendTest(); + void sendTest()QWidget; private: signals: