diff --git a/README.md b/README.md index 835598ace5..ad74e2d45e 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ This software is licensed under the term of the [GNU Lesser General Public Licen ![Language](https://img.shields.io/github/languages/top/jkriege2/JKQtPlotter) [![Qt5](https://img.shields.io/badge/Qt-5-brightgreen)](https://doc.qt.io/qt-5/) +[![Qt6](https://img.shields.io/badge/Qt-6-brightgreen)](https://doc.qt.io/qt-6/) + [![Documentation](https://img.shields.io/badge/documentation-online-blue)](http://jkriege2.github.io/JKQtPlotter/index.html) [![Build status](https://ci.appveyor.com/api/projects/status/vq2o9pfi97isxm2a?svg=true)](https://ci.appveyor.com/project/jkriege2/jkqtplotter) @@ -29,7 +31,7 @@ This software is licensed under the term of the [GNU Lesser General Public Licen ## Main Features - 2D Plotter widget class (JKQTPlotter) - high-quality plotting - - no other dependencies than Qt >= 5.0 + - no other dependencies than Qt >= 5.0 ([CImg](https://cimg.eu/) and [OpenCV](https://opencv.org/) are optional dependencies) - highly customizable axes/grids (linear/log, date/time, custom ticks ...) - integrated LaTeX parser (pure C++, no dependencies) to render mathematical equations in axis labels, ticks, ... - extensive user-interactions pre-programmed (several zooming modes, selecting regions, custom context menus, switch graph visibility, ...) diff --git a/doc/Doxyfile b/doc/Doxyfile index 9cc74b6e13..a418ada8b0 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -44,7 +44,7 @@ PROJECT_NUMBER = # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = "an extensive Qt5 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies" +PROJECT_BRIEF = "an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies" # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 diff --git a/doc/dox/buildinstructions.dox b/doc/dox/buildinstructions.dox index e4138e01b7..6b5c9ffc8f 100644 --- a/doc/dox/buildinstructions.dox +++ b/doc/dox/buildinstructions.dox @@ -89,6 +89,8 @@ Here is the \c CMakeLists.txt from that directory: # Configure project for usage of Qt5 find_package(Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) + # Configure project for usage of Qt6 + #find_package(Qt6 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl OpenGLWidgets REQUIRED) # include JKQTPlotter find_package(JKQTCommonLib REQUIRED) diff --git a/doc/dox/mainpage.dox b/doc/dox/mainpage.dox index 36969a01d8..f2e7f6bbb7 100644 --- a/doc/dox/mainpage.dox +++ b/doc/dox/mainpage.dox @@ -2,7 +2,7 @@ \mainpage JKQTPlotter - A Qt Plotting Library -- This is an extensive library of function/data plotter classes for Qt (>= 5.0, tested with Qt up to 5.12). +- This is an extensive library of function/data plotter classes for Qt5 (tested with Qt up to 5.15) and Qt6 (tested with Qt up to 6.3). - This software is licensed under the term of the GNU Lesser General Public License 2.1 (LGPL 2.1) or above. See \ref licensesec for details. - Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html) @@ -14,7 +14,7 @@ \section jkqtp_main_features Main Features - Extensive Scientific 2D Plotting framework (JKQTPlotter / JKQTBasePlotter) - high-quality plotting - - no other dependencies than Qt >= 5.0 + - no other required dependencies than Qt5 or Qt6 - highly customizable axes/grids (linear/log, date/time, custom ticks ...) - integrated LaTeX parser/renderer JKQTMathText for axis labels, ticks, notes ... - \ref JKQTPLOTTER_USERINTERACTION "extensive user-interactions pre-programmed (several zooming modes, selecting regions, custom context menus, switch graph visibility, ...)" diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox index 686faeca70..2bd097dccb 100644 --- a/doc/dox/whatsnew.dox +++ b/doc/dox/whatsnew.dox @@ -41,6 +41,7 @@ Changes, compared to \ref page_whatsnew_V2019_11 "v2019.11" include:
  • improved/breaking change: made more functions and function parameters const
  • improved/breaking change: image plots now manage CONST-data, not plain pointer arrays... This is OK, since the raw data is never owned nor modified by the plot, only referenced!.
  • bugfixed/improved: aspect ratio handling in JKQTPlotter.
  • +
  • new: Compatibility with Qt 5.15 and Qt6
  • new: added geometric plot objects JKQTPGeoArrow to draw arrows (aka lines with added line-end decorators, also extended JKQTPGeoLine, JKQTPGeoInfiniteLine, JKQTPGeoPolyLines to draw line-end decorator (aka arrows)
  • new: all geometric objects can either be drawn as graphic element (i.e. lines are straight line, even on non-linear axes), or as mathematical curve (i.e. on non-linear axes, lines become the appropriate curve representing the linear function, connecting the given start/end-points). The only exceptions are ellipses (and the derived arcs,pies,chords), which are always drawn as mathematical curves
  • new: a new graph class JKQTPXYFunctionLineGraph draws parametric 2D curves ( \f$ [x,y] = f(t) \f$ ), see \ref JKQTPlotterEvalCurves for an example
  • diff --git a/examples/cmake_link_example/CMakeLists.txt b/examples/cmake_link_example/CMakeLists.txt index 086ac9b6f7..1c47515ebb 100644 --- a/examples/cmake_link_example/CMakeLists.txt +++ b/examples/cmake_link_example/CMakeLists.txt @@ -1,5 +1,5 @@ # set minimum required CMake-Version -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.20) # set Project name set(EXAMPLE_NAME simpletest) @@ -12,7 +12,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 11) #set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) -# Configure project for usage of Qt5 +# Configure project for usage of Qt5/Qt6 find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGL REQUIRED) diff --git a/examples/cmake_link_example/README.md b/examples/cmake_link_example/README.md index 8446ea3017..eb10ec3a5f 100644 --- a/examples/cmake_link_example/README.md +++ b/examples/cmake_link_example/README.md @@ -5,7 +5,7 @@ This project (see [`cmake_link_example`](https://github.com/jkriege2/JKQtPlotter This example uses very simple code, which simply displays a plotter and shows some data. The important part of this example is the ´CMakeLists.txt`-file: ``` # set minimum required CMake-Version - cmake_minimum_required(VERSION 3.10) + cmake_minimum_required(VERSION 3.20) # set Project name set(EXAMPLE_NAME simpletest) @@ -15,11 +15,13 @@ This example uses very simple code, which simply displays a plotter and shows so # some basic configurations set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD 11) # for Qt5 + #set(CMAKE_CXX_STANDARD 17) # for QT6 #set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - # Configure project for usage of Qt5 - find_package(Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) + # Configure project for usage of Qt5/Qt6 + find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGl REQUIRED) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets PrintSupport Svg Xml OpenGL REQUIRED) # include JKQTPlotter find_package(JKQTCommonLib REQUIRED)