From 6082010c98e0a6b113da265b8319aa0f1efbb245 Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Sun, 3 Feb 2019 21:00:15 +0100 Subject: [PATCH] finished mouse interaction example + improved documentation --- .gitignore | 2 + doc/dox/buildinstructions.dox | 109 ++++++++++++++++++ doc/dox/examples_and_tutorials.dox | 5 +- doc/dox/whatsnew.dox | 86 ++++++++++++++ doc/jkqtplotter_stylesheet.css | 5 +- examples/README.md | 3 +- examples/test_user_interaction/README.md | 98 +++++++++++++++- lib/jkqtplotter/jkqtplotter.cpp | 11 +- lib/jkqtplotter/jkqtpopencvinterface.h | 4 - ...kqtplotter_test_user_interaction_small.gif | Bin 0 -> 32133 bytes screenshots/test_user_interaction.png | Bin 0 -> 49202 bytes sharedlib/README.md | 12 ++ 12 files changed, 321 insertions(+), 14 deletions(-) create mode 100644 doc/dox/buildinstructions.dox create mode 100644 doc/dox/whatsnew.dox create mode 100644 screenshots/jkqtplotter_test_user_interaction_small.gif create mode 100644 screenshots/test_user_interaction.png diff --git a/.gitignore b/.gitignore index f608ed62d3..5fb4a67b32 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,5 @@ moc_predefs.h /doc/*.tmp /staticlib/debug/*.prl /staticlib/release/*.prl +/sharedlib/debug/jkqtplotterlib_debug.prl +/sharedlib/release/jkqtplotterlib.prl diff --git a/doc/dox/buildinstructions.dox b/doc/dox/buildinstructions.dox new file mode 100644 index 0000000000..f923aada6f --- /dev/null +++ b/doc/dox/buildinstructions.dox @@ -0,0 +1,109 @@ +/*! + +\page BUILDINSTRUCTIONS How to Build +This page explains how to use JKQTPlotter in your own Projects + +\tableofcontents + +\section BUILDINSTRUCTIONS_QMAKE Build using QMake +\subsection BUILDINSTRUCTIONS_QMAKEINCLUDE QMake Include Project +If you want to simply include the JKQTPlotter Source code into your projects, without build a shared or static library and linking against it, you can use one of these QMake-Include files: + - lib/jkqtplotter.pri includes the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) + - lib/jkqtmathtext.pri includes only JKQTMathText + - lib/jkqtfastplotter.pri includes only JKQTFastPlotter +. + +In your QMake-projects it is then sufficient to add a line like: +\code{.qmake} +include(/lib/jkqtplotter.pri) +\endcode + +\subsection BUILDINSTRUCTIONS_QMAKESTATIC QMake Static Library + +There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as static link library: + - staticlib/jkqtplotterlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as static link library + - staticlib/jkqtmathtextlib.pro builds only JKQTMathText as static link library + - staticlib/jkqtfastplotterlib.pro builds only JKQTFastPlotter as static link library +. +They will produce a static link library that you can include into your projects, e.g. with the following QMake-snippet: + +\code{.qmake} +# include JKQTPlotter library +DEPENDPATH += /lib +INCLUDEPATH += /lib +CONFIG (debug, debug|release) { + LIBS += -L/staticlib/debug -ljkqtplotterlib_debug +} else { + LIBS += -L/staticlib/release -ljkqtplotterlib +} +\endcode + +This snippet assumes that you built the libraries with the provided `.PRO`-files. You can also add a second `.pro`-file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: +\code{.qmake} +TEMPLATE = subdirs + +# the (static library version) of JKQTPlotter +jkqtplotterlib_static.file = ../../staticlib/jkqtplotterlib.pro + +# your project file, with declared dependencies on jkqtplotterlib_static +test_styling.file=$$PWD/test_styling.pro +test_styling.depends = jkqtplotterlib_static + +# add the two entries to SUBDIRS +SUBDIRS += jkqtplotterlib_static test_styling +\endcode + + + +\subsection BUILDINSTRUCTIONS_QMAKEDYNAMIC QMake Dynamic Library + +There are several `.PRO`-files, that can be used to build the full library, or a limited subsets of it as shred library: + - sharedlib/jkqtplotterlib_sharedlib.pro builds the complete library (JKQTPlotter, JKQTFastPlotter, JKQTMathText) as shared library + - sharedlib/jkqtmathtextlib_sharedlib.pro builds only JKQTMathText as shared library + - sharedlib/jkqtfastplotterlib_sharedlib.pro builds only JKQTFastPlotter as shared library +. +They will produce a dynamic link library that you can include into your projects, e.g. with the following QMake-snippet: + +\code{.qmake} +# include JKQTPlotter library +DEPENDPATH += /lib +INCLUDEPATH += /lib +CONFIG (debug, debug|release) { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /sharedlib/debu/jkqtplotterlib_debug.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs + LIBS += -L/sharedlib/debug -ljkqtplotterlib_debug +} else { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /sharedlib/release/jkqtplotterlib.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs + LIBS += -L/sharedlib/release -ljkqtplotterlib +} +\endcode + +This snippet assumes that you built the libraries with the provided `.PRO`-files. You can also add a second `.pro`-file to your projects, which integrates both as subdirs. Such files are used for all examples in this project. Here is an example: +\code{.qmake} +TEMPLATE = subdirs + +# the (shared library version) of JKQTPlotter +jkqtplotterlib_shared.file = ../../sharedlib/jkqtplotterlib_sharedlib.pro + +# your project file, with declared dependencies on jkqtplotterlib_shared +test_styling.file=$$PWD/test_styling.pro +test_styling.depends = jkqtplotterlib_shared + +# add the two entries to SUBDIRS +SUBDIRS += jkqtplotterlib_shared test_styling +\endcode + +\note You will have to run a deployment step `make install` before running your executable, so the shared libararies are actually copied to the output directory (see `INSTALLS + ...` above). + + + + + +*/ \ No newline at end of file diff --git a/doc/dox/examples_and_tutorials.dox b/doc/dox/examples_and_tutorials.dox index 157b65f476..e319fa042b 100644 --- a/doc/dox/examples_and_tutorials.dox +++ b/doc/dox/examples_and_tutorials.dox @@ -112,7 +112,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int \image html jkqtplotter_simpletest_ui_small.png \subpage JKQTPlotterQtCreator using Qt Form Designer
parsed function plots (`JKQTPXParsedFunctionLineGraph`) - \image html jkqtplotter_test_user_interaction_small.png + \image html jkqtplotter_test_user_interaction_small.gif \subpage JKQTPlotterUserInteraction different possibilities of user-interaction in JKQtPlotter @@ -125,6 +125,9 @@ All test-projects are Qt-projects that use qmake to build. You can load them int \image html test_multiplot_small.png \subpage JKQTPlotterMultiPlotLayout Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview + \image html test_styling_small.png + \subpage JKQTPlotterStyling + Modifying different Aspects of the Styling of JKQTPlotter diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox new file mode 100644 index 0000000000..797469ab77 --- /dev/null +++ b/doc/dox/whatsnew.dox @@ -0,0 +1,86 @@ +/*! + +\page WHATSNEW What's New (Release Notes/Versions) +This page lists release notes for the diferent version of JKQTPlotter + +\tableofcontents + + + + + +\section WHATSNEW_TRUNK trunk: Major Update/Refactoring + +\subsection WHATSNEW_TRUNK_OVERVIEW trunk: Overview +Starting in summer 2018, JKQTPlotter received some major workover. During this, it lost compatibility to the QuickFit 3.0 code base. + +Changes, compared to \ref WHATSNEW_V2018_08 "v2018.08" include: +
    +
  • update: refactoring of the library's directory structure
  • +
  • new: added QMake-Projects for static and for shared library builds
  • +
  • update: refactoring/renaming of API, including the function anming scheme and class names
  • +
  • new: \ref exampleTutorialProjects "extensive set of Examples and Tutorials"
  • +
  • update: massively improved (doxygen-generated) Online-Documentation (http://jkriege2.github.io/JKQtPlotter/index.html) (automatically generated after each commit using ravis CI)
  • +
  • new: checked builds with continuous integration from AppVeyor: https://ci.appveyor.com/project/jkriege2/jkqtplotter/branch/master
  • +
  • new/update: support for building with Microsoft Visual Studio (Win), MinGW (Win), GCC (Linux/MacOS)
  • +
  • Updates to JKQTPlotter: +
      +
    • update: \ref JKQTPLOTTER_USERINTERACTION "reworked user interactions API"
    • +
    • new: added JKQTPSingleColumnSymbolsGraph for single-column data, e.g. drawn as (random) scatter or bee-swar plots
    • +
    • new: stacked barcharts with JKQTPBarVerticalStackableGraph, JKQTPBarHorizontalStackableGraph
    • +
    • deprecated: Removed datarange-feature
    • +
    • new: use/support of C++11 features (e.g. \c std::function<> in JKQTPXFunctionLineGraph / JKQTPYFunctionLineGraph
    • +
    • new: \ref jkqtpopencvinterface "optional OpenCV interface"
    • +
  • +
  • update/fix: several improvements and bugfixes to JKQTMathText
  • +
+ +\subsection WHATSNEW_TRUNK_DOWNLOAD trunk: Download + +This release is available from: + - Source code branch: https://github.com/jkriege2/JKQtPlotter/tree/v2018.08 + - Latest Release/Tag: https://github.com/jkriege2/JKQtPlotter/releases/tag/v2018.08 (2018-Aug-19) +. + + + + + + + +\section WHATSNEW_V2018_08 v2018.08: Minor Modifications (Final QuickFit3-compatible Version) + +\subsection WHATSNEW_V2018_08_OVERVIEW v2018.08: Overview +This is the final version of JKQTPlotter, which is still compatible with the QuickFit 3.0 code base. It contains minor changes as compared to \ref WHATSNEW_V2015_10 "v2015.10": + - new: added Qt data model to switch graphs on/off + - update: some improvements to test programs +. + +\subsection WHATSNEW_V2018_08_DOWNLOAD v2018.08: Download + +This release is available from: + - Source code branch: https://github.com/jkriege2/JKQtPlotter/tree/v2018.08 + - Latest Release/Tag: https://github.com/jkriege2/JKQtPlotter/releases/tag/v2018.08 (2018-Aug-19) +. + + + + + + + + +\section WHATSNEW_V2015_10 v2015.10: Initial Release + +\subsection WHATSNEW_V2015_10_OVERVIEW v2015.10: Overview +This is the initial release of the library. It was developed initially as part of QuickFit 3.0 and then separated out into a separate repository. + +\subsection WHATSNEW_V2015_10_DOWNLOAD v2015.10: Download + +This release is available from: + - Source code branch: https://github.com/jkriege2/JKQtPlotter/tree/v2015.10 + - Latest Release/Tag: https://github.com/jkriege2/JKQtPlotter/releases/tag/v2015.10 (2015-Oct-20) +. + + +*/ \ No newline at end of file diff --git a/doc/jkqtplotter_stylesheet.css b/doc/jkqtplotter_stylesheet.css index 5f39abc585..524a089452 100644 --- a/doc/jkqtplotter_stylesheet.css +++ b/doc/jkqtplotter_stylesheet.css @@ -71,17 +71,18 @@ h2.memtitle { h1, h2, h3, h4, h5, h6 { margin-left: -5pt; - margin-bottom: 32px; + margin-bottom: 16px; margin-right: 15px; padding: 4px; background: #eeeeee; - width: 75%; + width: 95%; } h1 { border-bottom: 2px solid black; border-left: 2px solid black; font-size: 22pt; + margin-top: 64pt; } h2 { diff --git a/examples/README.md b/examples/README.md index b287c4d524..931352102c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -51,7 +51,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_ui_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_ui) | [Placing JKQTPlotter into a Qt User-Interface-XML-file (`*.ui`)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/simpletest_ui) | using Qt Form Designer
parsed function plots (`JKQTPXParsedFunctionLineGraph`) | -| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_test_user_interaction_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | [User Interaction](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | different possibilities of user-interaction in JKQtPlotter | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_test_user_interaction_small.gif)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | [User Interaction](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction) | different possibilities of user-interaction in JKQtPlotter | @@ -60,6 +60,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | Screenshot | Description | Notes | |:-------------:| ------------- | ------------- | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_multiplot_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | [Layouting Several Plots](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_multiplot) | Combining plots in Qt Layouts
linking plot axes
copy data from a `std::map` int the datastore
print plots/print preview | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_styling_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styling) | [Styling of JKQTPlotter](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_styling) | Modifying different Aspects of the Styling of JKQTPlotter | diff --git a/examples/test_user_interaction/README.md b/examples/test_user_interaction/README.md index 5cbfe19831..c593a11b7f 100644 --- a/examples/test_user_interaction/README.md +++ b/examples/test_user_interaction/README.md @@ -1,30 +1,118 @@ # Tutorial (JKQTPlotter): User-Interactions in JKQtPlotter {#JKQTPlotterUserInteraction} + +## Basic Description This project (see `./examples/test_user_interaction/`) demonstrates different types of user-interactions in JKQTPlotter. +It contains a simple plot with two graphs and provides several widgets that allow to bind different user interactions to different events: + +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/test_user_interaction.png) + + +## Inner Workings + The source code of the main application can be found in [`test_user_interaction.cpp`](https://github.com/jkriege2/JKQtPlotter/tree/master/examples/test_user_interaction/test_user_interaction.cpp). +The menu at the top of the window contains several of the QActions provided for user-interaction by JKQTBasePlotter: +```.cpp + // add some of the default QActions from the JKQTPlotter to the window menu + // Some of the are also available in the context menu and toolbar of the JKQTPlotter + // others are not + QMenu* menuPlot=menuBar()->addMenu("Plot-Menu"); + menuPlot->addAction(plot->getPlotter()->getActionPrint()); + QMenu* menuPlotS=menuPlot->addMenu("Save ..."); + menuPlotS->addAction(plot->getPlotter()->getActionSaveData()); + menuPlotS->addAction(plot->getPlotter()->getActionSavePDF()); // not available from JKQTPlotter by default + menuPlotS->addAction(plot->getPlotter()->getActionSavePlot()); + QMenu* menuPlotZ=menuPlot->addMenu("Zoom ..."); + menuPlotZ->addAction(plot->getPlotter()->getActionZoomAll()); + menuPlotZ->addAction(plot->getPlotter()->getActionZoomIn()); + menuPlotZ->addAction(plot->getPlotter()->getActionZoomOut()); +``` +The rest of the form contains several Qt widgets which switch diverse aspects of the plot style (log-axes, grid on/off ...) and allow to bind different actions to several defined events, e.g. +```.cpp + // add a QComboBox that allows to set the left mouse button action for the JKQTPlotter + cmbLeftNoModMouseAction=new QComboBox(this); + layForm->addRow("mouse action: left-click, no modifiers", cmbLeftNoModMouseAction); + cmbLeftNoModMouseAction->addItem("PanPlotOnMove"); + cmbLeftNoModMouseAction->addItem("PanPlotOnRelease"); + cmbLeftNoModMouseAction->addItem("ZoomRectangle"); + cmbLeftNoModMouseAction->addItem("DrawRectangleForEvent"); + cmbLeftNoModMouseAction->addItem("DrawCircleForEvent"); + cmbLeftNoModMouseAction->addItem("DrawEllipseForEvent"); + cmbLeftNoModMouseAction->addItem("DrawLineForEvent"); + cmbLeftNoModMouseAction->addItem("ScribbleForEvents"); + cmbLeftNoModMouseAction->addItem("NoMouseAction"); + cmbLeftNoModMouseAction->setCurrentIndex(2); + connect(cmbLeftNoModMouseAction, SIGNAL(currentIndexChanged(int)), this, SLOT(setLeftMouseAction(int))); + setLeftMouseAction(cmbLeftNoModMouseAction->currentIndex()); + + // ...... + + void TestUserInteraction::setLeftMouseAction(int index) + { + if (index==cmbLeftNoModMouseAction->count()-1) plot->deregisterMouseDragAction(Qt::LeftButton, Qt::NoModifier); + else plot->registerMouseDragAction(Qt::LeftButton, Qt::NoModifier, static_cast(index)); + } +``` + +As you can see, this QComboBox registers one of the available actions to the event of a left-button single mouse click without having modifiers pressed at the same time. The slot that actually reconfigures the JKQTPlotter uses the methods JKQTPlotter::deregisterMouseDragAction() and JKQTPlotter::registerMouseDragAction() to achieve this effect. + + + +## Available User-Interactions + +You can play around with this example to find out about different types of user interactions. SOm of them are illustrated with animations below. + +### Switching Graph Visibility via Context Menu + +the default context menu contains a sub-menu that allows to switch every graph and and off: ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/contextmenu_graphvisibility.gif) + +### Toolbar at the top of the Plot +Each JKQTPlotter contains a toolbar that is by default invisible and appears, when the mouse moves over a designated area at the top of the plot: + ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/jkqtvanishtoolbar.gif) +You can also use the checkboxes "enable toolbar" to disable this toolbar alltogether and "toolbar 'always on'" to switch the vanishing feature off and make it visible all the time. + +### Mouse Position Display + +The JKQTPlotter contains a small text display for the current mouse position (in plot coordinates) at the top of the graph: + ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/mousepositiondisplay.gif) - +### Drag the Plot Viewport +You can move the viewport of the graph using the mouse ("PanPlotOnMove"-action). If you drag inside the plot window, you can move in both directions, if you drag over one of the coordinate axes, you can change the range of this axis only: ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/drag_viewport.gif) -![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/zoomin_mouse_contextmenu.gif) +### Zooming with the Mouse +There are several options to zoom, using the mouse: +* using the mouse wheel +* with double-click actions ClickZoomsOut, ClickZoomsIn +* using the context menu (or the toolbar)
+ ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/zoomin_mouse_contextmenu.gif) +Again these actions are limited to a single axis, if the mouse is above that axis (and not inside the actual plot rectangle). + +### Drawing Geometrical Forms -![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_circle.gif) - -![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_ellipse.gif) +You can also use the mouse to draw various geometricals forms. When you finish drawing, a single event is emitted for that form, which contains its size and position: +#### Lines ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_line.gif) +#### Rectangles ![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_rectangle.gif) +#### Circles +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_circle.gif) + +#### Ellipses +![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/doc/images/draw_ellipse.gif) + diff --git a/lib/jkqtplotter/jkqtplotter.cpp b/lib/jkqtplotter/jkqtplotter.cpp index 96e2c2557b..56485d6972 100644 --- a/lib/jkqtplotter/jkqtplotter.cpp +++ b/lib/jkqtplotter/jkqtplotter.cpp @@ -571,8 +571,17 @@ void JKQTPlotter::wheelEvent ( QWheelEvent * event ) { } plotter->setXY(xmin, xmax, ymin, ymax); } else if (itAction.value()==MouseWheelActions::PanByWheel) { - QPoint d=event->pixelDelta(); QRectF zoomRect= QRectF(QPointF(plotter->x2p(getXAxis()->getMin()),plotter->y2p(getYAxis()->getMax())), QPointF(plotter->x2p(getXAxis()->getMax()),plotter->y2p(getYAxis()->getMin()))); + QPointF d=QPointF(event->angleDelta().x()/120.0*zoomRect.width()/10.0, + event->angleDelta().y()/120.0*zoomRect.height()/10.0); + if (d.x()<-100) d.setX(-100); + if (d.x()>100) d.setX(100); + if (d.y()<-100) d.setY(-100); + if (d.y()>100) d.setY(100); + if (d.x()>=0 && d.x()<10) d.setX(10); + if (d.x()<0 && d.x()>-10) d.setX(-10); + if (d.y()>=0 && d.y()<10) d.setY(10); + if (d.y()<0 && d.y()>-10) d.setY(-10); if ( (event->x()/magnificationgetInternalPlotBorderLeft()) || (event->x()/magnification>plotter->getPlotWidth()+plotter->getInternalPlotBorderLeft()) ) { zoomRect.translate(0, d.y()); } else if (((event->y()-getPlotYOffset())/magnificationgetInternalPlotBorderTop()) || ((event->y()-getPlotYOffset())/magnification>plotter->getPlotHeight()+plotter->getInternalPlotBorderTop()) ) { diff --git a/lib/jkqtplotter/jkqtpopencvinterface.h b/lib/jkqtplotter/jkqtpopencvinterface.h index c807e4ed80..fa775be636 100644 --- a/lib/jkqtplotter/jkqtpopencvinterface.h +++ b/lib/jkqtplotter/jkqtpopencvinterface.h @@ -19,10 +19,6 @@ -/** \file jkqtpopencvinterface.h - * \ingroup jkqtpopencvinterface - */ - #include "jkqtplottertools/jkqtp_imexport.h" #include "jkqtplotter/jkqtpdatastore.h" #include diff --git a/screenshots/jkqtplotter_test_user_interaction_small.gif b/screenshots/jkqtplotter_test_user_interaction_small.gif new file mode 100644 index 0000000000000000000000000000000000000000..7670ee67a3b694c8902892a78581668d6be48139 GIT binary patch literal 32133 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%0Dli}t$EYCRXMO*jo$?Y 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 z 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 literal 0 HcmV?d00001 diff --git a/sharedlib/README.md b/sharedlib/README.md index f075b0ef56..ef2986c17a 100644 --- a/sharedlib/README.md +++ b/sharedlib/README.md @@ -12,13 +12,25 @@ There are several `.PRO`-files, that can be used to build the full library, or a DEPENDPATH += /lib INCLUDEPATH += /lib CONFIG (debug, debug|release) { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /sharedlib/debu/jkqtplotterlib_debug.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs LIBS += -L/sharedlib/debug -ljkqtplotterlib_debug } else { + # ensure that DLLs are copied to the output directory + install_jkqtplotter_dll.files = /sharedlib/release/jkqtplotterlib.* + install_jkqtplotter_dll.path = $$OUT_PWD + INSTALLS += install_jkqtplotter_dll + # link agains DLLs LIBS += -L/sharedlib/release -ljkqtplotterlib } ``` This snippet assumes that you built the libraries with the provided `.PRO`-files. +*Note* that you will have to run a deployment step `make install` before running your executable, so the shared libararies are actually copied to the output directory (see `INSTALLS + ...` above). +