wui-cpp
1.1.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::Label
s 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::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::Label
s possibleThe 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) - CNRS/LIRMM for more information or questions. .pas sama@ lirm m.fr