Dhanya Thattil 38cd10d4e6
Qt5 built in qwt (#570)
- qt4->qt5
- in built qt5 6.1.5 because rhel7 is not upto date with qt5, removed findqwt.cmake
- made a fix in qwt lib (qwt_plot_layout.h) to work with 5.15 and lower versions for qrect constr.
- qt5 forms fixed, qt4 many hard coding forms switched to forms including qtabwidget, scrolls etc, fonts moved to forms
 - docking option enabled by default, removed option to disable docking feature from "Mode"
- added qVersionResolve utility functions to handle compatibility before and after qt5.12
- qtplots (ian's code) takes in gain mode enable to set some settings within the class, with proper gain plot ticks
- ensure gain plots have no zooming of z axis in 2d and y axis in 1d
- removed placeholder text in qpalette in main window form as its not supportd until 5.12 (so using qt5.9 designer insted of qt5.15 to cope)
- tab order
Servers:
- fixed some error messages that were empty for fail in funcs (mostly minor as if this error, major issues)
2022-11-11 15:15:10 +01:00

291 lines
11 KiB
Groff

.TH "qwtinstall" 3 "Mon Jun 1 2020" "Version 6.1.5" "Qwt User's Guide" \" -*- nroff -*-
.ad l
.nh
.SH NAME
qwtinstall \- Installing Qwt
.SH "Download"
.PP
Stable Qwt releases are available from the Qwt \fCproject page\fP\&.
.PP
Qwt-6\&.1\&.5 consists of 4 files:
.PP
.IP "\(bu" 2
qwt-6\&.1\&.5\&.zip
.br
Zip file with the Qwt sources and the html documentation for Windows
.IP "\(bu" 2
qwt-6\&.1\&.5\&.tar\&.bz2
.br
Compressed tar file with the Qwt sources and the html documentation for UNIX systems ( Linux, Mac, \&.\&.\&. )
.IP "\(bu" 2
qwt-6\&.1\&.5\&.pdf
.br
Qwt documentation as PDF document\&.
.IP "\(bu" 2
qwt-6\&.1\&.5\&.qch
.br
Qwt documentation as Qt Compressed Help document, that can be loaded into the Qt Assistant or Creator\&. In the Qt Creator context sensitive help will be available like for Qt classes\&.
.PP
.PP
Precompiled Qwt Designer plugins, that are compatible with some binary packages of the Qt Creator:
.PP
.IP "\(bu" 2
qwtdesigner-6\&.1\&.5-*\&.zip
.PP
.SH "Installing Qwt"
.PP
Beside headers, libraries and the html version of the class documentation a proper Qwt installation contains a Designer plugin and a Qwt features file for building applications using Qwt\&.
.PP
All files will be copied to an installation directory, that is configurable by editing qwtconfig\&.pri\&. Its default settings is:
.PP
.IP "\(bu" 2
Windows
.br
C:\\Qwt-6\&.1\&.5
.IP "\(bu" 2
Unix like systems
.br
/usr/local/qwt-6\&.1\&.5
.PP
.PP
For the rest of the document this install path will be written as \fI${QWT_ROOT}\fP and needs to be replaced by the real path in all commands below\&.
.PP
It is not unlikely, to have more than one installation of Qwt on the same system\&. F\&.e for using the Qwt Designer plugin in the Qt Creator a version of Qwt is necessary with the same Qt and compiler combination, that had been used for building the Qt Creator ( see 'Help->About Qt Creator \&.\&.\&.' )\&.
.PP
Installing Qwt is done in 3 steps, that are quite common on UNIX systems\&.
.PP
.IP "1." 4
Configuration
.br
In the configuration step all parameters are set to control how to build and install Qwt
.IP "2." 4
Build
.br
In the build step binaries are built from the source files\&.
.IP "3." 4
Installation
.br
The installation copies and rearranges all files that are necessary to build Qwt applications to a target directory\&.
.PP
.PP
The installation doesn't modify the system beside copying files to a directory in a proper way\&. After removing build and installation directories the system is in the same state as it was before\&.
.SS "Configuration"
Configuring Qwt has to be done by editing the Project files used for building:
.PP
.IP "\(bu" 2
qwtbuild\&.pri
.br
qwtbuild\&.pri contains settings for how to build Qwt\&. All settings of this file are only for building Qwt itself and doesn't have an impact on how an application using Qwt is built\&. Usually its default settings doesn't need to be modified\&.
.IP "\(bu" 2
qwtconfig\&.pri
.br
qwtconfig\&.pri defines what modules of Qwt will be built and where to install them\&. qwtconfig\&.pri gets installed together with the Qwt features file qwt\&.prf and all its settings are known to project files for building Qwt applications\&.
.PP
.PP
In qwtconfig\&.pri the meaning of each option is explained in detail - it's worth reading it before running into problems later\&.
.SS "Build and installation"
The Qt Creator is a graphical frontend for calling qmake/make and - technically - it could be used for building and installing Qwt\&. But as this way requires a lot more understanding of details the following step by step instructions are for the easier way using the command line\&.
.SS "Unix-like systems"
The first step before creating the Makefile is to check that the correct version of qmake is used\&. F\&.e\&. on older Linux distribution you often find a Qt3 qmake and in the path\&.
.PP
The default setting of qmake is to generate a makefile that builds Qwt for the same environment where the version of qmake has been built for\&. So creating a makefile usually means something like:
.PP
.PP
.nf
cd qwt-6\&.1\&.5
/usr/local/Qt-5\&.0\&.1/bin/qmake qwt\&.pro
.fi
.PP
.PP
The generated Makefile includes all paths related to the chosen Qt version and the next step is:
.PP
.PP
.nf
make
.fi
.PP
( On multicore systems you can speed up building the Qwt libraries with running several jobs simultaneously: f\&.e\&. 'make -j4' on a dual core\&. )
.PP
Finally you have to install everything below the directories you have specified in qwtconfig\&.pri\&. Usually this is one of the system directories ( /usr/local, /opt, \&.\&.\&. ) where you don't have write permission and then the installation needs to be done as root:
.PP
.PP
.nf
sudo make install
.fi
.PP
( On systems where sudo is not supported you can do the same with: su -c 'make install' )
.SS "Windows"
Qt packages offer a command line interface, that can be found in the Qt application menu: f\&.e 'All Programs -> Qt -> Command Prompt'\&. It is not mandatory to use it, but probably the easiest way as it offers an environment, where everything is initialized for a version of Qt ( f\&.e qmake is in the PATH )\&.
.PP
Creating a makefile usually means something like:
.PP
.PP
.nf
cd qwt-6\&.1\&.5
qmake qwt\&.pro
.fi
.PP
.PP
The generated makefile includes all paths related to the chosen Qt version\&.
.SS "MinGW"
For MinGW builds the name of the make tool is 'mingw32-make'
.PP
.PP
.nf
mingw32-make
.fi
.PP
( On multicore systems you can speed up building the Qwt libraries with running several jobs simultaneously: 'mingw32-make -j' )
.PP
Finally you have to install everything below the directories you have specified in qwtconfig\&.pri\&.
.PP
.PP
.nf
mingw32-make install
.fi
.PP
.SS "MSVC"
For MSVC builds the name of the make tool is 'nmake'\&. Alternatively it is possible to use 'jom' ( https://wiki.qt.io/Jom ), that is usually included in a Qt Creator package\&.
.PP
.PP
.nf
nmake
.fi
.PP
.PP
Finally you have to install everything below the directories you have specified in qwtconfig\&.pri\&.
.PP
.PP
.nf
nmake install
.fi
.PP
.SH "Qwt and the Qt tool chain"
.PP
.SS "Designer plugin"
The Designer plugin and the corresponding Qwt library ( if the plugin has not been built self containing ) have to be compatible with Qt version of the application loading it ( usually the Qt Creator ) - what is often a different version of the Qt libraries you want to build your application with\&. F\&.e on Windows the Qt Creator is usually built with a MSVC compiler - even if included in a MinGW package !
.PP
To help Qt Designer/Creator with locating the Qwt Designer plugin you have to set the environment variable QT_PLUGIN_PATH, modify qt\&.conf - or install the plugin to one of the application default paths\&.
.PP
The Qt documentation explains all options in detail:
.PP
.IP "\(bu" 2
https://doc.qt.io/qt-5/deployment-plugins.html
.IP "\(bu" 2
https://doc.qt.io/qtcreator/adding-plugins.html
.PP
.PP
F\&.e\&. on a Linux system you could add the following lines to \&.bashrc:
.PP
.PP
.nf
QT_PLUGIN_PATH="${QWT_ROOT}/plugins:$QT_PLUGIN_PATH"
export QT_PLUGIN_PATH
.fi
.PP
.PP
When the plugin has not been built including the Qwt library ( see QwtDesignerSelfContained in qwtconfig\&.pri ) the Qt Designer/Creator also needs to locate the Qwt libraries\&. On Unix systems the path to the installed library is compiled into the plugin ( see rpath, ldd ), but on Windows the Qt Creator needs to be configured ( ( \fBRunning a Qwt application\fP ) in the same way as for any application using Qwt\&.
.PP
In case of problems the diagnostics of Qt Creator and Designer are very limited ( usually none ), but setting the environment variable QT_DEBUG_PLUGINS might help\&. In the Qt Creator it is possible to check which plugins were loaded successfully and for certain problems it also lists those that were recognized but failed ( \fITools > Form Editor > About Qt Designer Plugins\fP )\&.
.SS "Online Help"
The Qwt class documentation can be loaded into the Qt Creator:
.PP
.IP "\(bu" 2
open the settings dialog from the \fITools->Options\fP menu
.IP "\(bu" 2
raise the tab 'Help->Documentation'\&.
.IP "\(bu" 2
press the \fIAdd\fP button and select qwt-6\&.1\&.5\&.qch\&.
.PP
.PP
Now the context sensitive help ( \fIF1\fP ) works for Qwt classes\&.
.PP
For browsing the documentation in the Qt Assistant:
.PP
.IP "\(bu" 2
open the settings dialog from the \fIEdit->Preferences\fP menu
.IP "\(bu" 2
raise the tab \fIDocumentation\fP\&.
.IP "\(bu" 2
press the \fIAdd\fP button and select qwt-6\&.1\&.5\&.qch\&.
.PP
.SH "Building a Qwt application"
.PP
All flags and settings that are necessary to compile and link an application using Qwt can be found in the file ${QWT_ROOT}/features/qwt\&.prf\&.
.PP
When using qmake it can included from the application project file in 2 different ways:
.PP
.IP "\(bu" 2
Adding Qwt as qmake feature
.br
.br
When using the qmake feature mechanism you can bind a special version of qmake to a special installation of Qwt without having to add this dependency to the application project\&. How to add Qwt as feature is documented in the \fCqmake docs\fP\&.
.PP
After adding Qwt as a feature f\&.e on Linux as a persistent property \&.\&.\&.\&.
.PP
.nf
qmake -set QMAKEFEATURES ${QWT_ROOT}/features
.fi
.PP
\&.\&. the following line can be added to the application project file:
.PP
.nf
CONFIG += qwt
.fi
.PP
.IP "\(bu" 2
Including qwt\&.prf in the application project file
.br
.br
Instead of using qwt\&.prf as qmake feature it can be included from the application project file:
.br
.br
.PP
.nf
include ( ${QWT_ROOT}/features/qwt\&.prf )
.fi
.PP
.br
The advantage of using a direct include is, that all settings of qwt\&.prf are known to the application project file ( qmake features are included after the application project file has been parsed ) and it can be implemented depending on - f\&.e\&. settings made in qwtconfig\&.pri\&.
.PP
.PP
On Unix platforms it is possible to link a runtime path into the executable, so that the location of the Qwt libraries can be found without having to configure a runtime environment:
.IP "\(bu" 2
\fCQMAKE_LFLAGS_RPATH\fP
.IP "\(bu" 2
\fCQMAKE_RPATH\fP
.IP "\(bu" 2
\fCQMAKE_RPATHDIR\fP
.PP
.SH "Running a Qwt application"
.PP
When using Qwt as shared library ( DLL ) the \fCdynamic linker\fP has to find it according to the rules of the operating system\&.
.SS "Windows"
The only reasonable way to configure the runtime environment - without having to copy the Qwt libraries around - is to modify the PATH variable\&. F\&.e\&. this could be done by adding the following line to some batch file:
.PP
.PP
.nf
set PATH=%PATH%;${QWT_ROOT}\lib
.fi
.PP
.SS "GNU/Linux"
Read the documentation about:
.PP
.IP "\(bu" 2
\fIldconfig\fP
.IP "\(bu" 2
\fI/etc/ld\&.so\&.conf\fP
.IP "\(bu" 2
\fILD_LIBRARY_PATH\fP
.PP
.PP
Using the \fIldd\fP command a configuration can be tested\&.