Personal tools
You are here: Home Members cpascual Documents How to Compile QtiPlot for Windows (v 0.9.8.1)

How to Compile QtiPlot for Windows (v 0.9.8.1)

Compiling QtiPlot for windows is not trivial due to lack of detailed documentation from the developer. This is a step-by-step howto to keep record of the "tricks" in order to make the whole process easier in the future.

IMPORTANT NOTE:

 

****************************************************************************

A MORE RECENT VERSION OF THIS HOWTO CAN BE FOUND IN

http://www.cells.es/Members/cpascual/docs/qtiplot-howto

*****************************************************************************

 

The links in this guide were valid in September 2010. It is likely that some of the programs get updated and change their download addresses. I will update them if someone reports broken links.

Similarly, the instructions are given for the latests versions available at that time. I expect most of the information to be valid  (with trivial changes like changing some path name) if you use newer versions, but I don't test too often. If you succeed in compiling QtiPlot using newer versions and/or other configurations, I ask you to send me an email so that I can update the information in this page.

You can find another how-to in http://poolinfo.physik.hu-berlin.de/qtiplot-installer/README.html  which explains how to compile QtiPlot for windows (thanks to A.K. for pointing it out).  But beware that Its approach is slightly different to (and some times incompatible with) the one in this how-to.

 

Introduction

QtiPlot is a scientific data analysis and plotting tool. It is a free clone of Origin.

The official page for Qtiplot is:  http://soft.proindependent.com/qtiplot.html

This how-to recreates the steps I used for compiling qtiplot-0.9.8.1 for windows XP. 

 

Ready to use packages


Important: If you are looking for ready-to-use (i.e., already compiled) packages for QtiPlot under Windows, you may be interested in this page instead.

 

Motivation

 

Although QtiPlot is Free (GPL v2), its author provides windows binaries only under a commercial contract.

Of course, given that the sources are GPL'ed, anyone is allowed to compile and redistribute the program by him/herself.

While the official compilation instructions in the QtiPlot web page are correct, they are far from being practical, and there is obvious lack of support from the author to any questions related to compilation problems. In general, the official policy seems (understandably) directed towards encouraging users to pay for a "maintenance contract".

Figuring out the little unexplained details for compilation took me a considerable amount of time and therefore I think it is interesting to document the whole process.

 

Prerequisites

We start from a pristine windows XP machine.

According to the QtiPlot Manual, we need about 10 libraries installed (Qt, Qwt, QwtPlot3D, liborigin2, muParser,  boost, GSL, zlib, libpng, EmfEngine) as well as the mingw compiler.

In practice, some of them are included in the qtiplot source distribution and others are bundled in a package called Mingw-Distro. The instructions to have everything set-up are:

Installing Mingw-Distro

This bundle package from http://nuwen.net/mingw.html already provides you with:

  • the mingw compiler
  • libpng
  • zlib
  • boost

 

For installing the distro, do the following:

  1. Grab the latest release of MinGw-Distro from http://nuwen.net/mingw.html (I used Mingw-6.6.zip)
  2. uncompress the zip file in c:\Mingw
  3. cd c:\Mingw\bin
  4. copy make.exe mingw32-make.exe
  5. Add c:\Mingw\bin to the system PATH environment variable

NOTE ABOUT PATHS: In this how to I indicate the paths into which installing the different libraries and programs. In principle, you can choose different ones, but then you have to be careful about adapting the rest of the instructions accordingly. If you decide to change the paths, keep in mind the following:

  1) I strongly advise to stick to suggested names in the case of code that goes into the 3rdparty subdirectory of the QtiPlot sources

  2) always avoid using spaces or any non-english character in the pathnames.

Download and unpack Qtiplot sources

  1. Download Qtiplot from http://soft.proindependent.com/qtiplot.html (qtiplot-0.9.8.1.zip)
  2. Uncompress it to c:\qtiplot-0.9.8.1

IMPORTANT NOTE: In the following steps, you will modify files under c:\qtiplot-0.9.8.1 . If at some point the instructions are not clear, you can use my copy of the final estate as a reference: (example of modified sources for qtiplot-0.9.8.1)

Installing GSL

There is a pre-compiled windows port of GSL at

http://gnuwin32.sourceforge.net/packages/gsl.htm

  1. Download the "Binaries" and "Developer" zip files (gsl-1.8-bin.zip  and gsl-1.8-lib.zip)
  2. Create a directory called "gsl" under c:\qtiplot-0.9.8.1\3dparty
  3. Uncompress both zip files in it. Now the gsl directory structure should look something like:
qtiplot-0.9.8.1
├── 3rdparty
│   ├── gsl
│   │   ├── bin
│   │   ├── contrib
│   │   │   └── gsl ...
│   │   ├── include
│   │   │   └── gsl
│   │   ├── lib
│   │   ├── man
│   │   │   ├── cat1
│   │   │   └── cat3
│   │   ├── manifest
│   │   └── share
:   :
:   :

Installing muParser

  1. Download muParser from http://muparser.sourceforge.net/ (muparser_v132.tar.gz)
  2. Uncompress it to c:\qtiplot-0.9.8.1\3dparty\muparser (you can use the gzip.exe and tar.exe executables in c:\mingw\bin, or just install 7zip from http://www.7-zip.org/)
  3. open a command prompt and ...
  4. cd  c:\qtiplot-0.9.8.1\3dparty\muparser\build
  5. make -f makefile.mingw

Installing Qt

I found out that I had to compile Qt from sources (instead of installing the pre-compiled binaries) to avoid an incompatibility with the mingw

compiler from mingw-distro.

  1. Download the sources package from ftp://ftp.qt.nokia.com/qt/source/ (qt-everywhere-opensource-src-4.6.3.zip)
  2. uncompress the sources in: c:\qt\4.6.3
  3. set the following system environment variable: QMAKESPEC=win32-g++
  4. open a new command prompt and...
  5. cd c:\qt\4.6.3
  6. configure -release
  7. make
  8. add "C:\Qt\4.6.3\bin"  to the system PATH environment variable

 

NOTE: step 6 will take long time, and step 7 will take VERY long time (it took ~9 hours in my case)

Installing SIP and PyQt

This is optional. If you don't do it, python scripting won't be supported, but QtiPlot will otherwise work.
  1. Install Python if you don't already have it: download the installation binary from http://python.org/download (I used the "Python2.7 Windows Installer") and install it.
  2. add the directory where you installed python (e.g. c:\python27) to the system PATH environment variable
  3. Install SIP:
    1. Download the source code for SIP from http://www.riverbankcomputing.co.uk/software/sip/download (sip-4.10.5.zip)
    2.  uncompress it in c:\sip
    3. cd c:\sip
    4. python configure.py --platform=win32-g++
    5. make
    6. make install
      
  4. Install PyQt:
    1. Download the source code for PyQt4 from (http://www.riverbankcomputing.co.uk/software/pyqt/download) (PyQt-win-gpl-4.7.4.zip)
    2.  uncompress it in c:\pyqt
    3. cd c:\pyqt
    4. python configure.py
    5. make
    6. make install
      

Installing EmfEngine

This is optional. If you don't do it, exporting to windows meta files will not be supported, but QtiPlot will otherwise work.

  1. Download the source package from http://soft.proindependent.com/emf/download.html (EmfEngine-0.8-opensource.zip)
  2. uncompress the sources in c:\qtiplot-0.9.8.1\3dparty\EmfEngine
  3. Edit the file  c:\qtiplot-0.9.8.1\3dparty\EmfEngine\config.pri and comment the following line:
    win32:CONFIG += HAVE_GDI_PLUS
  4. Now edit the file  c:\qtiplot-0.9.8.1\qtiplot\qtiplot.pro and find the following section:
    # check if we have EmfEnginge
    !isEmpty(EMF_ENGINE_LIBS) {
            DEFINES += EMF_OUTPUT
            INCLUDEPATH += $$EMF_ENGINE_INCLUDEPATH
            INCLUDEPATH += /usr/local/include/libEMF
    
            LIBS        += $$EMF_ENGINE_LIBS
            win32:LIBS  += -lgdiplus
            unix:LIBS   += /usr/local/lib/libEMF.a
    
  5. You need to change the following line
    win32:LIBS  += -lgdiplus
    by:
    win32:LIBS  += -lgdi32
  6. Now open a new command prompt and...
  7.  cd c:\qtiplot-0.9.8.1\3dparty\EmfEngine
  8. qmake
  9. make

 

Installing QuaZip

This is optional. If you don't do it, import from ODF spreadsheets (e.g., OpenOffice .ods files) will not be supported, but QtiPlot will otherwise work.

  1. Download the source package from  http://sourceforge.net/projects/quazip/ (quazip-0.3.zip)
  2. uncompress the sources in c:\qtiplot-0.9.8.1\3dparty\quazip
  3. Now open a command prompt and...
  4.  cd c:\qtiplot-0.9.8.1\3dparty\quazip
  5. qmake
  6. make
  7. now create a directory called c:\qtiplot-0.9.8.1\3dparty\quazip\lib and copy the file c:\qtiplot-0.9.8.1\3dparty\quazip\quazip\release\libquazip.a into it. (This step may not be necessary at all, but it won't hurt!)

Installing ExcelFormat

This is optional. If you don't do it, import and export of Excel files will not be supported, but QtiPlot will otherwise work.

  1. Download the source package from http://www.codeproject.com/KB/office/ExcelFormat.aspx (ExcelFormat_src.zip)
  2. uncompress the sources in c:\qtiplot-0.9.8.1\3dparty\ExcelFormat
  3. create a directory called c:\qtiplot-0.9.8.1\3dparty\ExcelFormat\lib
  4. Now open a command prompt and...
  5.  cd c:\qtiplot-0.9.8.1\3dparty\ExcelFormat\lib
  6. g++ -O2 -Wall -include string.h -c ..\BasicExcel.cpp
  7. g++ -O2 -Wall -include string.h -c ..\ExcelFormat.cpp
  8. ar rcs libExcelFormat.a BasicExcel.o ExcelFormat.o
  9. If all was ok, the c:\qtiplot-0.9.8.1\3dparty\ExcelFormat\lib should now contain 3 files: BasicExcel.o , ExcelFormat.o and  libExcelFormat.a

Compiling Qtiplot

Once all the prerequisites are dealt with, we can compile QtiPlot. The source directory for qtiplot now looks like this (only 3 levels of directories are shown):

qtiplot-0.9.8.1
├── 3rdparty
│   ├── EmfEngine
│   ├── gsl
│   ├── liborigin
│   ├── muparser
│   ├── QTeXEngine
│   ├── qwt
│   ├── qwtplot3d
│   └── zlib
├── fitPlugins
│   ├── explin
│   ├── exp_saturation
│   ├── fitRational0
│   ├── fitRational1
│   └── planck_wavelength
├── manual
│   ├── docbook-en
│   └── html
└── qtiplot
    ├── examples
    ├── icons
    ├── src
    └── translations

  1. If you don't have docbook and doxygen installed, edit c:\qtiplot-0.9.8.1\qtiplot.pro and delete the line referring to the "manual" subdirectory. This way you won't compile the manual, but you can always download it from the official page (there is even a menu option for that in the qtiplot program itself), or copy the manual directory from an official binary.
  2. Open a command prompt and:
  3.  cd c:\qtiplot-0.9.8.1
  4. copy build.conf.example build.conf 
  5. Now you have to edit Edit c:\qtiplot-0.9.8.1\build.conf . There are several changes to do:
    1. Change the lines beginning by "XXXX_INCLUDEPATH" and "win32:XXXX_LIBS" to point to the right paths in your system (in my case, I only had to do changes in the Boost and libpng sections)
    2. If you didn't install ExcelFormat, comment out all the lines in the ExcelFormat section.
    3. If you didn't install QuaZip, comment out all the lines in the QuaZip section.
    4. If you didn't install EmfEngine,  comment out all the lines in the EmfEngine section.
    5. If you didn't install SIP+PyQt,  comment out the line that says: "SCRIPTING_LANGS += Python".
    6.  Finally, I also modified the "System specific configuration" section to point to the MinGw include and lib paths, but I suspect it is not necessary. Once all the modifications were done, my build.conf file ended up as:
      isEmpty( QTI_ROOT ) {
      message( "each file including this config needs to set QTI_ROOT to the dir containing this file!" )
      }

      ##########################################################
      ## System specific configuration
      ##########################################################

      # Global include path which is always added at the end of the INCLUDEPATH
      #SYS_INCLUDEPATH = /opt/local/include
      SYS_INCLUDEPATH = C:/MinGW/include
      # Global lib path and libs which is ls always added at the end of LIBS
      #SYS_LIBS = -L/opt/local/lib
      SYS_LIBS = -LC:/MinGW/lib

      ##########################################################
      ## muParser (http://muparser.sourceforge.net/)
      ##########################################################

      # include path. leave it blank to use SYS_INCLUDE
      MUPARSER_INCLUDEPATH = $$QTI_ROOT/3rdparty/muparser/include
      # link statically against a copy in 3rdparty/
      MUPARSER_LIBS = $$QTI_ROOT/3rdparty/muparser/lib/libmuparser.a
      # or dynamically against a system-wide installation
      #MUPARSER_LIBS = -lmuparser

      ##########################################################
      ## GNU Sientific Library (http://www.gnu.org/software/gsl/)
      ##########################################################

      # include path. leave it blank to use SYS_INCLUDE
      GSL_INCLUDEPATH = $$QTI_ROOT/3rdparty/gsl/include
      # link statically against a copy in 3rdparty/
      GSL_LIBS = $$QTI_ROOT/3rdparty/gsl/lib/libgsl.a \
      $$QTI_ROOT/3rdparty/gsl/lib/libgslcblas.a
      # or dynamically against a system-wide installation
      #GSL_LIBS = -lgsl -lgslcblas

      ##########################################################
      ## Boost libraries (http://www.boost.org/)
      ##########################################################

      # include path. leave it blank to use SYS_INCLUDE
      BOOST_INCLUDEPATH = C:/MinGW/include/boost
      # link statically against a copy in 3rdparty/
      unix: BOOST_LIBS = $$QTI_ROOT/3rdparty/boost/lib/libboost_date_time-gcc43-mt-1_38.a \
      $$QTI_ROOT/3rdparty/boost/lib/libboost_thread-gcc43-mt-1_38.a
      # link statically against a copy in C:/MinGW/
      win32:BOOST_LIBS = C:/MinGW/lib/libboost_date_time.a \
      C:/MinGW/lib/libboost_thread.a
      # or dynamically against a system-wide installation
      #BOOST_LIBS = -lboost_date_time-mt -lboost_thread-mt

      ##########################################################
      ## QWT - use local copy till upstream catches up
      # http://qwt.sourceforge.net/index.html
      ##########################################################

      # include path.
      QWT_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwt/src
      # link locally against a copy in 3rdparty/
      QWT_LIBS = $$QTI_ROOT/3rdparty/qwt/lib/libqwt.a

      ##########################################################
      ## QwtPlot3D - use local copy till upstream catches up
      # http://qwtplot3d.sourceforge.net/
      ##########################################################

      # include path.
      QWT3D_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwtplot3d/include
      # link locally against a copy in 3rdparty/
      win32:QWT3D_LIBS = $$QTI_ROOT/3rdparty/qwtplot3d/lib/qwtplot3d.dll
      unix:QWT3D_LIBS = $$QTI_ROOT/3rdparty/qwtplot3d/lib/libqwtplot3d.a

      ##########################################################
      ## ExcelFormat - optional. you don't have to set these variables
      ##(http://www.codeproject.com/KB/office/ExcelFormat.aspx)
      ##########################################################

      # include path.
      XLS_INCLUDEPATH = $$QTI_ROOT/3rdparty/ExcelFormat/
      # link locally against a copy in 3rdparty/
      XLS_LIBS = $$QTI_ROOT/3rdparty/ExcelFormat/lib/libExcelFormat.a

      ###########################################################
      ## QuaZIP - optional. you don't have to set these variables
      # http://quazip.sourceforge.net/
      ###########################################################

      # include path.
      QUAZIP_INCLUDEPATH = $$QTI_ROOT/3rdparty/quazip/quazip/
      # link locally against a copy in 3rdparty/
      QUAZIP_LIBS = $$QTI_ROOT/3rdparty/quazip/lib/libquazip.a

      ##########################################################
      ## libpng - optional. you don't have to set these variables
      ##########################################################

      # include path. leave it blank to use SYS_INCLUDE
      LIBPNG_INCLUDEPATH = C:/MinGW/include
      # link statically against a copy in C:/MinGW/
      LIBPNG_LIBS = C:/MinGW/lib/libpng.a
      # or dynamically against a system-wide installation
      #LIBPNG_LIBS = -lpng

      ##########################################################
      ## EmfEngine - optional. you don't have to set these variables
      # http://soft.proindependent.com/emf/index.html
      ##########################################################

      # include path.
      EMF_ENGINE_INCLUDEPATH = $$QTI_ROOT/3rdparty/EmfEngine/src
      # link locally against a copy in 3rdparty/
      EMF_ENGINE_LIBS = $$QTI_ROOT/3rdparty/EmfEngine/libEmfEngine.a

      ##########################################################
      ## python - only used if python is needed
      ##########################################################

      # the python interpreter to use
      # (unix only, windows will use what ever is configured to execute .py files!)
      #PYTHON = python

      ##########################################################
      ## Qt tools - allows to use specific versions
      ##########################################################

      LUPDATE = lupdate
      LRELEASE = lrelease

      ############################################################
      ## Target specific configuration: configure Qtiplot itself
      ############################################################

      contains( TARGET, qtiplot ) {
      # building without muParser doesn't work yet
      SCRIPTING_LANGS += muParser
      SCRIPTING_LANGS += Python

      # a console displaying output of scripts; particularly useful on Windows
      # where running QtiPlot from a terminal is inconvenient
      DEFINES += SCRIPTING_CONSOLE

      #DEFINES += QTIPLOT_DEMO

      # Comment the following lines to disable donations start-up message.
      #DEFINES += QTIPLOT_SUPPORT

      # Uncomment the following line if you want to perform a custom installation using the *.path variables defined in ./qtiplot.pro.
      #CONFIG += CustomInstall

      # Uncomment the following line if you want to build QtiPlot as a browser plugin (not working on Internet Explorer).
      #CONFIG += BrowserPlugin

      CONFIG += release
      #CONFIG += debug
      #win32: CONFIG += console
      }
  6. Now, if you are using gcc >=4.5 and qtiplot<=0.9.8.1 (which is the case if you are using the versions I suggested), we need to do a small correction to liborigin. 
    1. Edit  c:\qtiplot-0.9.8.1\3rdparty\liborigin\OriginDefaultParser.cpp and look for the following section:
      bool OriginDefaultParser::parse()
      {
      BOOST_LOG_FINALIZE();

      int i;
      FILE *f, *debug;
      if((f=fopen(fileName.c_str(),"rb")) == NULL ) {
      printf("Could not open %s!\n",fileName);
      return false;
      }
    2. Change the line that starts with "printf" ( in my case it is line 76) to:
      printf("Could not open %s!\n",fileName.c_str());
  7. And now, finally,  open a command prompt and...
  8.  cd c:\qtiplot-0.9.8.1
  9. qmake qtiplot.pro
  10. make

The compilation should proceed without problems now and qtiplot.exe should be ready in c:\qtiplot-0.9.8.1\qtiplot\

But if you try to execute it, you will probably get an error about a missing dll. Continue reading.

Creating a distribution package with all required libraries

For qtiplot.exe to run, it needs access to some dll's and other files.

In order to distribute qtiplot with all needed files, create a distribution dir and copy the following files there:

Path relative to distribution dir
original file in
gpl_license.txt
qtiplot_logo.png
 c:\qtiplot-0.9.8.1\
qtiplot.exe
qti_wordlist.txt
qtiplotrc.py
qtiUtil.py
c:\qtiplot-0.9.8.1\qtiplot\
qwtplot3d.dll
c:\qtiplot-0.9.8.1\3rdparty\qwtplot3d\lib\
quazip.dll
(only if you compiled with quazip support)

c:\qtiplot-0.9.8.1\3rdparty\quazip\quazip\release\
fitPlugins\explin.dll
fitPlugins\exp_saturation.dll
fitPlugins\fitRational0.dll
fitPlugins\fitRational1.dll
fitPlugins\planck_wavelength.dll
C:\qtiplot-0.9.8.1\fitPlugins\
Qt3Support4.dll
QtAssistantClient4.dll 
QtCore4.dll 
QtGui4.dll 
QtNetwork4.dll 
QtOpenGL4.dll 
QtSql4.dll  QtSvg4.dll 
QtXml4.dll
 C:\Qt\4.6.3\bin\
mingwm10.dll c:\MinGW\bin\
_abcoll.pyc
abc.pyc
codecs.pyc
copy_reg.pyc
functools.pyc
genericpath.pyc
linecache.pyc
locale.pyc
ntpath.pyc
os.pyc
py_compile.py
re.pyc
site.pyc
sre_compile.pyc
sre_constants.pyc
sre_parse.pyc
stat.pyc
traceback.pyc
types.pyc
UserDict.pyc
warnings.pyc
(only if you compiled with python support)
(note: if for any of these you don't find the *.pyc file, you can simply copy the equivalent *.py file)
(The *.pyc files are automatically created from the corresponding *.py when needed)

c:\python27\Lib  
python27.dll
(only if you compiled with python support)
c:\WINDOWS\system32
sip.pyd
(only if you compiled with python support)
c:\python27\Lib\site-packages  
PyQt4\__init__.py
PyQt4\QtGui.pyd
PyQt4\QtCore.pyd
(only if you compiled with python support)
c:\pyqt\  ; c:\pyqt\QtCore ; c:\pyqt\QtGui
PyQt4\uic
(copy the whole uic directory)
(only if you compiled with python support)
c:\pyqt\pyuic\uic  ;
README.txt http://www.cells.es/Members/cpascual/files/
translations\ Download any wanted translation file (.qm extension) from:
 http://soft.proindependent.com/translations.html
and put it in the translations subdirectory of your distribution directory.
Manual\
If you compiled the manual yourself:
Copy the contents of c:\qtiplot-0.9.8.1\manual\html into the Manual subdirectory of your distribution dir.

If you didn't compile the manual yourself, you can download the html from:
http://soft.proindependent.com/manuals.html
and put in under the Manual subdirectory of your distribution directory.
Alternatively, you can also copy the manual directory from one of the official demo binaries.

That's it. Qtiplot can be launched form this distribution directory and it can be zipped and copied to a different machine.

The final tree structure of my distribution directory looks like:

qtiplot_0.9.8.1-3-Unofficial
├── fitPlugins
│   ├── explin.dll
│   ├── exp_saturation.dll
│   ├── fitRational0.dll
│   ├── fitRational1.dll
│   └── planck_wavelength.dll
├── Manual
│   ├── common
│   │   └── (...)
│   ├── equations
│   │   └── (...)
│   ├── icons
│   │   └── (...)
│   ├── pics
│   │   └── (...)
│   ├── tutorial
│   │   └── (...)
│   └── (...)
├── PyQt4
│   ├── uic
│   │   ├── Compiler
│   │   │   ├── compiler.py
│   │   │   ├── indenter.py
│   │   │   ├── __init__.py
│   │   │   ├── misc.py
│   │   │   ├── proxy_type.py
│   │   │   ├── qobjectcreator.py
│   │   │   └── qtproxies.py
│   │   ├── Loader
│   │   │   ├── __init__.py
│   │   │   ├── loader.py
│   │   │   └── qobjectcreator.py
│   │   ├── port_v2
│   │   │   ├── ascii_upper.py
│   │   │   ├── encode_utf8.py
│   │   │   ├── __init__.py
│   │   │   ├── invoke.py
│   │   │   ├── load_plugin.py
│   │   │   ├── proxy_base.py
│   │   │   └── string_io.py
│   │   ├── port_v3
│   │   │   ├── ascii_upper.py
│   │   │   ├── encode_utf8.py
│   │   │   ├── __init__.py
│   │   │   ├── invoke.py
│   │   │   ├── load_plugin.py
│   │   │   ├── proxy_base.py
│   │   │   └── string_io.py
│   │   ├── widget-plugins
│   │   │   ├── phonon.py
│   │   │   ├── qaxcontainer.py
│   │   │   ├── qscintilla.py
│   │   │   └── qtwebkit.py
│   │   ├── driver.py
│   │   ├── exceptions.py
│   │   ├── icon_cache.py
│   │   ├── __init__.py
│   │   ├── objcreator.py
│   │   ├── properties.py
│   │   ├── pyuic.py
│   │   └── uiparser.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── QtCore.pyd
│   └── QtGui.pyd
├── translations
│   ├── qt
│   └── qtiplot_fr.qm
├── _abcoll.py
├── abc.py
├── codecs.py
├── copy_reg.py
├── functools.py
├── genericpath.py
├── gpl_licence.txt
├── linecache.py
├── locale.py
├── mingwm10.dll
├── ntpath.py
├── opjfile.log
├── os.py
├── py_compile.py
├── python27.dll
├── Qt3Support4.dll
├── QtAssistantClient4.dll
├── QtCore4.dll
├── QtGui4.dll
├── qtiplot.exe
├── qtiplot_logo.png
├── qtiplotrc.py
├── qtiplotrc.pyc
├── qtiUtil.py
├── qtiUtil.pyc
├── qti_wordlist.txt
├── QtNetwork4.dll
├── QtOpenGL4.dll
├── QtSql4.dll
├── QtSvg4.dll
├── QtXml4.dll
├── quazip.dll
├── qwtplot3d.dll
├── README.txt
├── re.py
├── sip.pyd
├── site.py
├── sre_compile.py
├── sre_constants.py
├── sre_parse.py
├── stat.py
├── traceback.py
├── types.py
├── UserDict.py
└── warnings.py
 

Contact information

If you have any comments, questions, or suggestions, feel free to contact me.

Document Actions