/*! \defgroup jkqtpplotter_styling Styling System \ingroup jkqtplotter_general \image html stylesbanner.png JKQTPlotter (and JKQTBasePlotter) offer a styling system, which allows to easily define and transfer plot styling from one object to another. The system is based on a hirarchy of structs, which summarize properties, describing how a plot looks in general. The classes contained in this system are: - JKQTPlotterStyle for JKQTPlotter: Defines e.g. basic user-interactions, the display options of the toolbar - JKQTBasePlotterStyle for JKQTBasePlotter defines the appearance of the plot itself (colors, axis properties, key properties, default graph colors/styles, ...), contains JKQTPCoordinateAxisStyle instances to configrue the plot's coordinate axes - JKQTPCoordinateAxisStyle for JKQTPCoordinateAxis defines the appearance of a coordinate axis (colors, axis properties, ...) - JKQTPKeyStyle for the style of the key/legend in a JKQTBasePlotterStyle . In addition there are static methods that allow to manage a system-wide (actually program-instance wide) style that is applied to any new instance of JKQTPlotter and JKQTBasePlotter on construction: - JKQTPGetSystemDefaultStyle() / JKQTPSetSystemDefaultStyle() allows to access the central instace of JKQTPlotterStyle (mainly properties/style of the GUI-parts and user-action bindings) - JKQTPGetSystemDefaultBaseStyle() / JKQTPSetSystemDefaultBaseStyle() accesses the central instance of JKQTBasePlotterStyle (styles the actual plot/graphs with colors, axes styles, ...) . You can e.g. use these general methods to alter the styles for all JKQTPlotter instances, created in the future: \code{.cpp} // load the system-wide default settings from an INI-file: QSettings plotSettings("JKQTPlotterSettings.ini", QSettings::IniFormat);; JKQTPGetSystemDefaultStyle().loadSettings(plotSettings); JKQTPGetSystemDefaultBaseStyle().loadSettings(plotSettings); // alter a system-wide default setting by hand (here: set color of zooming rect to red) JKQTPGetSystemDefaultStyle().userActionColor=QColor("red"); \endcode Several pre-made styles are available in the JKQTPlotter repository (https://github.com/jkriege2/JKQtPlotter/tree/master/lib/jkqtplotter/resources/styles/). These are also linked into the JKQTPlotter library as Qt ressource into the subdirectory \c :/JKQTPlotter/styles/ . You can use them as follows: \code{.cpp} QSettings plotSettings(":/JKQTPlotter/styles/blackandwhite.ini", QSettings::IniFormat);; JKQTPGetSystemDefaultStyle().loadSettings(plotSettings); JKQTPGetSystemDefaultBaseStyle().loadSettings(plotSettings); \endcode Here is a table with all available ready-made styles:
Style-file Screenshot Symbols
:/JKQTPlotter/styles/blackandwhite.ini \image html blackandwhite.ini.png \image html blackandwhite.ini.symbols.png
:/JKQTPlotter/styles/blueprint.ini \image html blueprint.ini.png \image html blueprint.ini.symbols.png
:/JKQTPlotter/styles/dark.ini \image html dark.ini.png \image html dark.ini.symbols.png
:/JKQTPlotter/styles/default.ini \image html default.ini.png \image html default.ini.symbols.png
:/JKQTPlotter/styles/legacy_default_style.ini \image html legacy_default_style.ini.png \image html legacy_default_style.ini.symbols.png
:/JKQTPlotter/styles/seaborn.ini \image html seaborn.ini.png \image html seaborn.ini.symbols.png
:/JKQTPlotter/styles/simple_arrowsaxes.ini \image html simple_arrowsaxes.ini.png \image html simple_arrowsaxes.ini.symbols.png
:/JKQTPlotter/styles/simple_axesoffset.ini \image html simple_axesoffset.ini.png \image html simple_axesoffset.ini.symbols.png
:/JKQTPlotter/styles/simple_axesoffset_plotbox.ini \image html simple_axesoffset_plotbox.ini.png \image html simple_axesoffset_plotbox.ini.symbols.png
:/JKQTPlotter/styles/simple_gridandticks.ini \image html simple_gridandticks.ini.png \image html simple_gridandticks.ini.symbols.png
\see Classes are documented in \ref jkqtpplotter_styling_classes .
See \ref JKQTPlotterStyling for a detailed example. */