Qt: Difference between revisions
Jump to navigation
Jump to search
Line 94: | Line 94: | ||
* [http://www.trinitydesktop.org/docs/qt4/widget-classes.html Qt widget] - Basic widgets, Advanced widgets, Organizer widgets and Abstract widigets. | * [http://www.trinitydesktop.org/docs/qt4/widget-classes.html 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 | * 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 | |||
= Qt Tricks = | = Qt Tricks = | ||
* [https://github.com/arraytools/Qt/tree/master/example/Qmouseevent Mouse location] | * [https://github.com/arraytools/Qt/tree/master/example/Qmouseevent Mouse location] | ||
* [https://github.com/arraytools/Qt/tree/master/example/ResizeRectangle Resize a rectangle as window] | * [https://github.com/arraytools/Qt/tree/master/example/ResizeRectangle Resize a rectangle as window] |
Revision as of 08:12, 24 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, Roku TV box, Samsung, Skype, Ubuntu, VirtualBox, VLC, Volvo, 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
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
- Use -> to dereference 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 :: to call a function from some class. For example,
QObject::connect();
means to use connect() function from QObject class.
- '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