|
wui-cpp
1.2.1
|
WUI-CPP is an easy to use Web-based GUI for your C++ programs
With a few lines of code, you can start a web server and describe the content of the user interface using the available widgets:
As you can see, WUI-CPP was designed to not bloat your code and to ask only the bare minimum from you:
update() when you need to update your dataBy running this code and accessing http://localhost:8080 from a web browser, you get the following interface:

The Start button will load the interface description from the server, add the corresponding widgets and start a timer at the period indicated in the spinbox (here 1000ms) to update the output widgets (here the wui::Labels in the table). The Stop button will cancel the timer and no more data will be retrieved from the server.
Input widgets, such as wui::Slider, will send an update every time their value changes and the server will store this information into its internal state. When a call to update() is issued, variables associated with input widgets (here robot_max_velocity) will be updated with the server's internal state and variables associated with output widgets (here robot_max_velocity, robot_current_velocity and state) will be read and stored internally so that the interface can access these new values.
The graphical interface is based on jQWidgets and is free to use for non-commercial applications.
For now, the following widgets are available:
| Name | Description | Type |
|---|---|---|
wui::Label | Display anything having the output stream operator defined. All labels within the same container will be grouped inside a table | Output |
wui::ProgressBar | A progress bar working with anything having the output stream operator defined to output a numerical value | Output |
wui::Slider | A slider to pilot a numerical value | Input |
wui::Range | A "pair of sliders" to define a min/max interval | Input |
wui::Button | A momentary push button | Input |
wui::Switch | An on/off switch | Input |
wui::ComboBox | A drop down list of values | Input |
wui::NumberInput | A form to directly set a numeric value | Input |
wui::ButtonGroup | A multi button entry, like radio button or checkbox buttons | Input |
wui::Tabs | Add Tabs to better organize your interface | Container |
Here is the interface created by the wui-example demo application:

WUI-CPP is not aimed to replace Qt, wxWidgets, gtk and alike where you can create complex and good looking applications. It will never be able to compete with such solutions.
WUI-CPP is for those who want a simple solution to add graphical capabilities to their C++ applications and/or those who need a remote access to their GUI. Being web-based, the user interface can be accessed from computers, tablets and phones, with no additional cost!
wui::Labels possibleshare/resources/wui-cpp/lib/wuicpp.ts in order to manage this new type in createUI function.pid build.The license that applies to the whole package content is GNULGPL. Please look at the license.txt file at the root of this repository for more details.
wui-cpp has been developed by following authors:
Please contact Robin Passama (robin.passama@lirmm.fr) - CNRS/LIRMM for more information or questions.
1.8.17