User Interfaces for Unigine::Widgets
You can use user interface files (*.ui) to describe how widgets are laid out. Two types of UI files are supported:
- UI files created in Unigine UI syntax, manually. Such files are handled using Unigine::Widgets::UserInterface class.
- UI files exported from the Qt Designer. Such files are handled using Unigine::Widgets::NativeInterface class.
How to Load Unigine UI
To load a Unigine-native user interface file, take the following steps:
- Include the UserInterface header. All other Unigine::Widgets headers are already included in it.
#include <core/systems/widgets/widget_interface.h>
- Declare UserInterface and the root widgets from the UI file in the global scope.
#include <core/systems/widgets/widget_interface.h> Unigine::Widgets::UserInterface ui; Unigine::Widgets::Window window;
- Load the user interface file. You also need to add root widgets to the rendered GUI for them to become visible.
int init() { // You can declare the namespace for convenience using Unigine::Widgets; // Load UI file in Unigine syntax ui = new UserInterface("samples/systems/widgets/widgets_01.ui"); // Render the root widget addChild(window,ALIGN_OVERLAP | ALIGN_CENTER); return 1; } int shutdown() { // Delete UserInterface with all widgets loaded from it delete ui; return 1; }
How to Load Qt UI
UI files exported from Qt Designer are handled in the similar manner as Unigine UI with the exception that Unigine::Widgets::NativeInterface is used.
- Include the interface header. All other Unigine::Widgets headers are already included in it.
#include <core/systems/widgets/widget_interface.h>
- Declare NativeInterface and the root widgets from the UI file in the global scope.
#include <core/systems/widgets/widget_interface.h> Unigine::Widgets::NativeInterface qt_ui; Unigine::Widgets::Window window;
- Load the user interface file. You also need to add root widgets to the rendered GUI for them to become visible.
int init() { // You can declare the namespace for convenience using Unigine::Widgets; // Load UI file created in Qt Designer qt_ui = new NativeInterface("samples/systems/widgets/widgets_02.ui"); // Render the root widget addChild(window,ALIGN_OVERLAP | ALIGN_CENTER); return 1; } int shutdown() { // Delete NativeInterface with all widgets loaded from it delete qt_ui; return 1; }
Last update: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)