Qt: Difference between revisions
Jump to navigation
Jump to search
Line 76: | Line 76: | ||
== Scientific == | == Scientific == | ||
* [http://qt-apps.org/content/show.php/Unipro+UGENE?content=92171 Unipro UGENE] | * [http://qt-apps.org/content/show.php/Unipro+UGENE?content=92171 Unipro UGENE] | ||
* [http://qt-apps.org/content/show.php/arrowmatcher?content=144151 arrowmatcher] | * [http://qt-apps.org/content/show.php/arrowmatcher?content=144151 arrowmatcher] (not English) | ||
* [http://qt-apps.org/content/show.php/QtiPlot?content=58947 QtiPlot] | * [http://qt-apps.org/content/show.php/QtiPlot?content=58947 QtiPlot] (require Python) | ||
* [http://qt-apps.org/content/show.php/MIFit?content=134846 MIFit] | * [http://qt-apps.org/content/show.php/MIFit?content=134846 MIFit] | ||
* [http://qt-apps.org/content/show.php/Tulip?content=124170 Tulip] | * [http://qt-apps.org/content/show.php/Tulip?content=124170 Tulip] |
Revision as of 21:20, 28 May 2013
Uses
- http://www.omgubuntu.co.uk/2013/03/unity-next-project-announced
- RStudio is written in the C++ programming language and uses the Qt framework for its graphical user interface. See http://en.wikipedia.org/wiki/RStudio, http://support.rstudio.org/help/discussions/suggestions/3154-rstudio-and-qt-5 and Linux platform or Windows platform.
- Qt is used in a lot of places. See some example in wikipedia. Some famous ones are Mathematica, DreamWorks, Google Earth, HP, KDE, LyX, Roku TV box, Samsung, Skype, Ubuntu, VirtualBox, VLC, Volvo, Propeller GCC IDE, Texmaker, etc. I guess 'Glucore Omics Explorer' was also made from Qt; see LinkedIn.
- 10 Qt use cases “we” didn’t know
Download of 4.x and 5.x version
http://download.qt-project.org/official_releases/
For example, the source code for 5.0.1 can be downloaded from http://download.qt-project.org/official_releases/qt/5.0/5.0.1/single/
Transition of Qt 4.x to 5
http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5
How to distribute Qt application
In my first example of GUI with button & label, I need to put 7 dll files in the same exe directory.
- icudt49.dll (17MB)
- icuin49.dll (1.3MB)
- icuuc49.dll (1MB)
- Qt5Cored.dll (7MB)
- Qt5Guid.dll (5.5MB)
- Qt5Widgets.dll (4MB)
- Qt5Widgetsd.dll (7.5MB)
Google: how to reploy application on windows, how to build qt contains all dll static on windows
- http://qt-project.org/wiki/Build_Standalone_Qt_Application_for_Windows
- http://qt-project.org/doc/qt-4.8/deployment-windows.html
- http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc
- http://stackoverflow.com/questions/15153910/qt-build-to-a-single-exe-file-without-dlls
- http://yjyao.com/2011/02/how-to-deploy-your-qt-application.html
How to Build static Qt on Windows
- http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Windows
- http://stackoverflow.com/questions/14932315/how-to-compile-qt-5-0-1-static-or-dynamic-on-vs2010-or-vs2012-express-under-wind
- http://stackoverflow.com/questions/14870272/qt-error-while-compiling-qt-5-0-1-on-windows-visual-studio-2010-vs2010
- Google: Qt 5.0 windows build static visual studio 2010 QMAKESPEC
- I can only succeed running configure command from Qt 4.8.4. See also http://qt-project.org/doc/qt-4.8/install-win.html.
My experience based on Qt 5.0.2
- read ReadME file to download perl, python and ruby. Make sure the executable path in in PATH env variable.
- OpenGL requirement: DirectX SDK The 6/7/2010 version is about 572MB. This will be installed to C:\Program Files (x86)\Microsoft DirectX SDK(June 2010) directory.
- modify mkspecs by searching qmake.conf. It was found in C:\Qt\qt-everwhere-opensource-src-5.0.2\qtbase\mkspecs\win32-msvc2010
- configure -static -release -platform win32-msvc2010 -opengl desktop
Qt Creator
- Multiple version of Qt library
- Keyboard shortcuts:
- Ctrl + Click the symbol - move to the definition or the declaration of a symbol.
- Click a symbol + Right click + Follow the symbol under cursor - move to the definition
- The default build directory is parallel to the folder of source code which is a pain if there is a same project name. A better default build directory should be under the source code folder. To change the default setting, go to Tools -> Options -> Build and Run -> Remove "../" from the Default build directory value "../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}". The project name is determined by Qt project file XXXX.pro.
Qt Tutorial
- http://qt-project.org/doc/qt-4.8/tutorials.html
- http://www.zetcode.com/gui/qt4/ This website contains tutorials of GUI programming by many different languages.
- Examples from codeprogress.com
- Qt 5 OpenGL https://www.youtube.com/watch?v=GYa5DLV6ADQ&list=PLizsthdRd0YzA1a8iIRT-c3YPnT5v3Zxw
- 106 Qt programming videos on youtube from VoidRealms
- Qt mouse even on QLabel by Saeed Ghoassy OR http://www.codeprogress.com/cpp/libraries/qt/qtClasses.php?item=QMouseEvent
- Qt C++ drawing mouse event by redbear8174
- Qt + histogram, scatterplot, contour plot,... by -http://qwt.sourceforge.net/ Qwt] See forum
- Forum about heatmap http://www.qtcentre.org/threads/45776-Using-Qt-to-display-a-interactive-heatmap
- Search http://code.google.com/ to find projects based on Qt. Other hosting sites includes sourceforge.org, githumb,... See wikipedia web site.
Qt-Apps.org
http://qt-apps.org/ is a good source to find open source projects based on Qt.
Graphics
- 2d transformation
- EasyPaint (Poland langauge)
- Boat scenario (cannot compile)
- Q diagram (cannot compile)
Scientific
- Unipro UGENE
- arrowmatcher (not English)
- QtiPlot (require Python)
- MIFit
- Tulip
Qt Widget
C++ basics
See C++ tutorial.
- Use dot (.) to refer to any public member of a class.
- Use the arrow operator (->) to refer to a member of an object pointed by a pointer. The label below is a pointer rather than an object but *label is an object.
QLabel *label = new QLabel("ABCDE"); label->show(); // (*label).show();
- Use the operator of scope (::) to set a definition of a class's member function or call a function from some class. For example,
QObject::connect();
means to use connect() function from QObject class.
Qt Basic
- To run Qt from command line, I use
# Open command prompt from Visual Studio 2010 set PATH=C:\Qt\Qt5.0.2\5.0.2\msvc2010_opengl\bin;%PATH%
Now we can build the project by for example
cd C:\Qt\FQD\Chapter01\plain-cpp qmake -project qmake nmake
The executable will be located under release subfolder.
- Frame (seems to be the same as 'Dock' in Qt's language)
- Dock window/Dock Widget http://qt-project.org/doc/qt-4.8/mainwindows-dockwidgets.html
- 'namespace Ui' in xxxx.h helps to glue classes together.
- Qt widget - Basic widgets, Advanced widgets, Organizer widgets and Abstract widigets.
- Qt class hierarchy diagram http://doc.qt.digia.com/extras/qt43-class-chart.pdf
- QObject vs QWidget vs QMainWindow http://stackoverflow.com/questions/3298792/whats-the-difference-between-qmainwindow-and-qwidget-and-qdialog
- size().width() can get the width of a widget. See http://www.zetcode.com/gui/qt4/customwidget/