lundi 17 décembre 2012

Qt - Le coeur

Bon on a déjà vu que Qt est énorme, il prend en compte tous aspects d'un environnement de développement et d'exécution multiplaforme. Ainsi dans le coeur, on retrouve des problématiques d'allocation mémoire d’alignement de buffers et même de processeur avec la notion de little indian et le big indian.

On voit également que tous les codes sources sont là et c'est énorme :
Jetons un oeil dans : C:\Qt\4.8.3\src
Taille : 3,53 Go
Fichiers : 27 968

C:\Qt\4.8.3\src\corelib
Taille : 152 Mo
Fichiers : 1 111

Qt Corlib Gobal

C:\Qt\4.8.3\src\corelib\global
qmalloc.cpp : tient tient de l'allocation mémoire
   qMalloc
   qReallocAligned

qendian.h : little indian big indian problems
   qbswap

qnumeric.cpp
qnumeric.h
   qIsInf
   qIsNaN
   qIsFinite

Qt Corlib Kernel

C:\Qt\4.8.3\src\corelib\kernel
Fichiers : 93

qmath.h : librairie mathématique
fonctions inline : optimistation
inline int qCeil(qreal v)
inline int qFloor(qreal v)
inline qreal qFabs(qreal v)
inline qreal qSin(qreal v)
inline qreal qCos(qreal v)
inline qreal qTan(qreal v)
inline qreal qAcos(qreal v)
inline qreal qAsin(qreal v)
inline qreal qAtan(qreal v)
inline qreal qAtan2(qreal x, qreal y)
inline qreal qSqrt(qreal v)
inline qreal qLn(qreal v)
inline qreal qExp(qreal v)
inline qreal qPow(qreal x, qreal y)
inline qreal qFastSin(qreal x)
inline qreal qFastCos(qreal x)

qmath.cpp : sinus tabulé optimisation
qt_sine_table

Abstract Event Dispatcher

qabstracteventdispatcher.cpp
qabstracteventdispatcher.h
   QAbstractEventDispatcher
   registerTimer
   processEvents
   registerSocketNotifier
qabstracteventdispatcher_p.h

Core Application

qcoreapplication.cpp
qcore_mac.cpp

Qt - Installation (Suite)

Je vois bien que j'ai des problèmes avec l'installation de Qt sur ma machine. Par exemple le fait de ne pas pouvoir linker avec une simple DLL, c'est à dire un projet du template Add-In me pose question.

Ce que je vais faire lorsque la licence commerciale viendra à échéance, c'est réinstaller une machine, dans l'ordre :

Qt Open Source
Configure
Nmake
Add-In

Et on verra bien ce que cela donne ...

Conclusion

En fait pas du tout, il faut tout désinstaller et tout réinstaller, c'est une erreur de marketing de Qt qui met en avant sa version commerciale :
Qt Download Open Source
1 : Si vous cliquez sur le bouton Download Now vous téléchargez qt-unified-windows-x86-online.exe et c'est le bordel le plus absolu avec le mode "mise à jour remote" et quelque part vous achetez la version commerciale ...

2 : Tandis qu'il faut absolument cliquer sur "View All Downloads" pour accéder à la bonne version "Open source".

jeudi 13 décembre 2012

Qt avec Visual Studio c'est Fun - Grrrr

Pas de doute c'est fun !

Error 2 error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QtLibrary2::~QtLibrary2(void)" (__imp_??1QtLibrary2@@QAE@XZ) referenced in function _main E:\Qt4 VisualStudio C++\QtApplicationUsingQtLib2\QtApplicationUsingQtLib2\main.obj QtApplicationUsingQtLib2


By default, VS compiles with "Treat wchar_t as Built-in Type" enabled (/Zc:wchar_t). Qt compiles with that option disabled (/Zc:wchar_t-). If you disable the "Treat wchar_t as Built-in Type" in VS (under Configuration Properties > C/C++ > Language), before building the static library, does that fix it?

Vous cherchez une solution ?
Je n'en ai pas, je tente toujours d'utiliser une pauvre DLL qu'elle soit dynamique ou static peut importe cela m'est égale mais cela semble impossible.

Visual Studio Static Library
Project -> (bouton droit) Properties -> Configuration Properties -> General -> (volet) Project Defaults -> Configuration Type : Static Library (.lib), Dynamic Library (.dll)

mercredi 5 décembre 2012

Qt Sample in Visual Studio

J'ai un exemple Qt : WorldTimeclockBuilder que je souhaite utiliser comme base de départ pour développer. Il me faut intégrer cet exemple dans un projet Visual Studio.

Cet exemple se trouve sur mon disque dur à l'emplacement suivant :

C:\Qt\4.8.3\examples\designer\worldtimeclockbuilder

Sur le réseau, je trouve de la documentation; ici :
http://doc.qt.digia.com/qt/designer-worldtimeclockbuilder.html

Comment intégrer cet exemple dans un projet Qt4 Visual Studio ? Voilà la question que je vais tenter d’élucider.

Observons le fichier UI : form.ui

C'est ce fichier qui va donner les informations permettant de créer un projet au plus prêt de ce dont on a besoin.
Avec Qt Designer on observe que form.ui est constitué de 3 objets principaux :
WorldTimeForm : la form principale de l'application est un QWidget
worldTimeClock : un customwidgets
timeEdit
spinBox

Le projet WorldTimeClock

Donc mon projet va s'appeler WorldTimeClock

File->New->Project
Qt project WorldTimeForm
Dans le wizard de création du projet je choisi de renommer le fichier .ui en form.ui et comme class de base une QWidget :
Qt project form.ui et QWidget
Je prends soin de choisir comme Base class une QWidget pour changer un peu ...

J'ai crée ainsi l’arborescence de projet suivante :

Arborescence du projet WorldTimeForm

What's the difference between QMainWindow and QWidget and QDialog?

QWidget is the base class for all drawable classes in Qt. Any QWidget-based class can be shown as a window by showing it when it has no parent.

QDialog is based on QWidget, but designed to be shown as a window. It will always appear in a window, and has functions to make it work well with common buttons on dialogs (accept, reject, etc.).

QMainWindow is designed around common needs for a main window to have. It has predefined places for a menu bar, a status bar, and other widgets. It does not have any built-in allowances for buttons like QDialog does.

En compilant je m'aperçois que form.ui attend un worldtimeclock.h

 <customwidgets>
  <customwidget>
   <class>WorldTimeClock</class>
   <extends></extends>
   <header>worldtimeclock.h</header>
   <container>0</container>
   <pixmap></pixmap>
  </customwidget>
 </customwidgets>

Ajout du Widget WorldTimeClock dans ma solution :
Customer Widget added to project

Wizard de création d'un Qt4 Designer plugin

Custom Widget

Et là c'est le drame !

Malgrés toutes mes tentatives pour configurer correctement les properties de mon projet les .h et les .lib impossible de Linker :

error LNK2019: unresolved external symbol "public: virtual __thiscall QtPluging::~QtPluging(void)" (??1QtPluging@@UAE@XZ) referenced in function _main E:\Qt4 VisualStudio C++\QtApplicationUsingPlugin\QtApplicationUsingPlugin\main.obj QtApplicationUsingPlugin

Remarques :
Un plugin n'est utilisable qu'en release ?! Ah bon mais alors comment fait-on pour le débugger ... En plus cela doit bien vouloir dire quelque part qu'il faut l'installer par exemple dans : C:\Qt\4.8.3\plugins pour l'utiliser. Bref galère en perspective.

Même avec une simple DLL

Bon je vais essayé déjà d'utiliser une simple DLL ...

Même en ne créant qu'un simple projet n'utilisant qu'une simple DLL :

#include "qtapplicationusingqtlib.h"
#include <QtGui/QApplication>

#include "qtlibrary.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QtApplicationUsingQtLib w;

QtLibrary MyLib;

w.show();
return a.exec();
}

Projet Qt Application Using QtLib
Ayant bien pris soin de :

Linker properties

Impossible de linker le moindre projet modulaire

error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QtLibrary::~QtLibrary(void)" (__imp_??1QtLibrary@@QAE@XZ) referenced in function _main E:\Qt4 VisualStudio C++\QtApplicationUsingQtLib\QtApplicationUsingQtLib\main.obj QtApplicationUsingQtLib

Et sur Internet comment utilise t-on VS et Qt ?

Quand je lis ce que je lis sur Internet cela fait peur ... 
Pas si simple finalement d'utiliser Qt avec Visual Studio ...
Je vais certainement passer du temps à regarder ce que sont vraiment les fichiers .pro et .pri dont l'Add-In me permet de faire des imports et des exports.

Reprenons l'installe de Qt

Au hasard de mes recherches sur Internet je suis bien tombé sur :

http://portfolio.delinkx.com/files/Qt.pdf

et sur :

http://www.siteduzero.com/tutoriel-3-36553-utiliser-qt-avec-visual-studio-2010.html

mais franchement cela ne donne pas envie.

Ce que je ne comprends pas encore

C'est que le VS Add-In pour Qt semble avoir configuré un certain nombre de choses ... au niveau du template des projets créer, ils compilent se linkent et s'exécutent mais que cela ne fonctionne pas dans le cadre d'une DLL.

Par contre les variables d'environment :

QMAKESPEC=win32-msvc2010
QTDIR=C:\Qt\4.8.3

ne sont pas settées, le PATH non plus n'est pas setté !

Je suis le document suivant :

http://portfolio.delinkx.com/files/Qt.pdf

Je vais setter mes variables et tient je tombe sur le fichier :
C:\Qt\4.8.3\bin\qtvars.bat

Oups, je regarde la date de ce fichier, il a été généré et a une date ultérieure à mon installe de Qt ...
Aurait-il été créé par le configure que j'ai exécuté ? :

STEP 3: CONFIGURE QT FOR YOUR MACHINE
• Run the Visual Studio Command prompt. Start > Program Files > Visual Studio > Visual
Studio Tools > Visual Studio Command Prompt
• Go to the path of your installed Qt e.g. cd C:\Qt\2009.01\qt
• At the prompt type the command configure. E.g. C:\Qt\2009.01\qt> configure
• This will configure Qt for your machine. In case you have multiple compilers installed, and
want to build the Qt library using a specific compiler, you must specify a qmake
specification. This is done by pasing -platform <spec> to configure. E.g. configure -platform
win32-msvc

Je suis en train de me prendre les pieds dans le tapis :

STEP 2: SETTING ENVIRONMENT VARIABLES
• Add this 2 paths to the Environment Variables: “C:\Qt\2009.01\bin” and
“C:\Qt\2009.01\qt\bin”. Note: This path will depend where you install the Qt.
• To add to the path: Control Panel > System > Advanced > Environment Variables
• Select “PATH” under system variables. Click “EDIT” and Add this to the end of the line:
C:\Qt\2009.01\bin; C:\Qt\2009.01\qt\bin (Remember to separate two paths with a “;”)

Bref ! Je suis maintenant convaincu que l'Add-In ne fait pas tout et que j'ai bien fait de lancer la commande configure depuis : C:\Qt\4.8.3

Effectivement c'est énorme, je suppose que la commande C:\Qt\4.8.3\configure.exe utilise le fichier C:\Qt\4.8.3\configure

configure est un fichier de 328 Ko en texte, je regarde un peu dedans par curiosité ...

## This file is the build configuration utility of the Qt Toolkit.

Si je regarde la fin du fichier, je peux y puis lire :

MAKE=`basename "$MAKE"`
echo
echo Qt is now configured for building. Just run \'$MAKE\'.
if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
    echo Once everything is built, Qt is installed.
    echo You should not run \'$MAKE install\'.
else
    echo Once everything is built, you must run \'$MAKE install\'.
    echo Qt will be installed into $QT_INSTALL_PREFIX
fi
echo
echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
echo

Si je comprends bien, on me demande de builder Qt avec >MAKE install et c'est cohérent avec le Step 4 de mon tuto, mais alors pourquoi j'ai pu lancer une application Qt avec VS en Debug, comme à la fin de l'installe, pourquoi cela a t-il fonctionné juste avec l'Add-In ...

Que fait la commande >configure ?

On peut s'y attendre c'est énorme mais entre autres choses utiles :

Création du fichier solution Visual Studio :
C:\Qt\4.8.3\projects.sln
Attention avant de l'ouvrir, il comporte 400 projets. Tous ces fichiers projets .vcxproj ont été créés par le configure.

C:\Qt\4.8.3\translations est touché ajout des répertoires :
C:\Qt\4.8.3\translations\debug
C:\Qt\4.8.3\translations\release
C:\Qt\4.8.3\translations\tmp

dans C:\Qt\4.8.3\bin sont créés :
qmake.exe
qtvars.bat

C:\Qt\4.8.3\mkspecs

C:\Qt\4.8.3\tools
C:\Qt\4.8.3\tools\activeqt\activeqt.sln
C:\Qt\4.8.3\tools\activeqt\Makefile

Ok je MAKE ou plutot nmake

Ok très bien j'ai compris, je suis maintenant convaincu, je vais lancer le make :

STEP 4: BUILDING QT FOR VISUAL STUDIO
• Run nmake at the command prompt
• This takes lots of time. Will build all the demos, examples and libraries.

Bref à vérifier mais je crois bien que le configure fait le make en version 4.8.3

Autre fichier intéressant pour débuter :

C:\Qt\4.8.3\changes-4.8.3

Quand on voit le boulot qui est fait c'est impressionnant !

mardi 4 décembre 2012

Qt Sample in Visual Studio - Add a Dialogbox on a PushButton

A l'aide de Qt Designer, j'ajoute un bouton "Ok" que je nomme okButton dans mon fichier myqt4application.ui

Une fois l'Add-In de Qt for Visual Studio installé c'est assez pratique, en double-cliquant sur le fichier .ui il s'ouvre dans Qt Designer. Je cherche à conserver qui ce a été créé par le Qt4 Template et conserver la même structure d'application.

Alors donc, que dois-je faire pour connecter un gestionnaire d’évènements à mon nouveau bouton ?

Après avoir bien lu la page suivante :
http://doc.qt.digia.com/qt/designer-using-a-ui-file.html

Je passe à l'action :

Dans mon application, j'ai repéré la ligne :
ui.setupUi(widget);

C'est la ligne :
ui.setupUi(this);
du fichier :
MyQt4Application\myqt4application.cpp
C'est après cette ligne que je vais pouvoir ajouter mon "connect"

Il faut également que j'atoute un private slot au bon endroit et que je code la fonction void onOkButtonClicked();

Je vais donc modifier les deux fichiers : myqt4application.h et myqt4application.cpp de la façon suivante :

myqt4application.h
#ifndef MYQT4APPLICATION_H
#define MYQT4APPLICATION_H

#include <QtGui/QMainWindow>
#include "ui_myqt4application.h"

class MyQt4Application : public QMainWindow
{
Q_OBJECT

public:
MyQt4Application(QWidget *parent = 0, Qt::WFlags flags = 0);
~MyQt4Application();

// BRY
private slots:
     void onOkButtonClicked();

private:
Ui::MyQt4ApplicationClass ui;
};

#endif // MYQT4APPLICATION_H

myqt4application.cpp
#include "stdafx.h"
#include "myqt4application.h"

MyQt4Application::MyQt4Application(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);

// BRY
connect(ui.okButton, SIGNAL(clicked()), this, SLOT(onOkButtonClicked()));
}

MyQt4Application::~MyQt4Application()
{

}

// BRY
void MyQt4Application::onOkButtonClicked()
{
QMessageBox::information(this, tr("Signal connected on a button"),
                 "You clicked the OK button!");
}

Remarque :
Le tag // BRY est là pour repérer facilement les lignes que j'ai modifiées par rapport à mon application de base crée automatiquement par Qt4 Template Application

Le tour est joué, ça fonctionne :

Qt DialogBox
A DialogBox is connected to the Ok button
Great fun !

Qt Caratéristiques de Qt4 Application

Qu'est ce qui caractérise une application Qt C++ sous Visual Studio ?

Construction de l'application à l'initialisation :

Fichier : main.cpp

#include "stdafx.h"
#include "myqt4application.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyQt4Application w;
w.show();
return a.exec();
}

La classe QApplication est définie dans :
c:\Qt\4.8.3\src\gui\kernel\qapplication.h

L'objet MyQt4Application est définit dans :
MyQt4Application\MyQt4Application\myqt4application.cpp

MyQt4Application::MyQt4Application(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}

La class QMainWindow est définit dans :
c:\Qt\4.8.3\src\gui\widgets\qmainwindow.h

MyQt4Application s'occupe de construire l'interface graphique à l'aide du fichier myqt4application.ui

Autrement dit, une Qt Application consiste a créer l'interface graphique à l'aide de son fichier de définitions .ui et à instancier une QApplication pour l'exécuter.

mercredi 28 novembre 2012

Qt Installation Version Commerciale

Je cherche à faire une installe de Qt pour Visual Studio 2010. En m'inscrivant sur le site de Nokia voir : Qt Introduction, j'ai récupéré l'exécutable :
qt-win-commercial-4.8.3-vs2010.exe

Je double-clique dessus pour l'installer  ...

Installation de Qt

Petite remarque sur le Menu Démarrer :
Je suis surpris quand l'installe me demande de choisir "le nom du répertoire du menu démarré dans lequel je souhaite mettre les raccourcis Qt". Comme c'est gentil mais n'ayant pas l'habitude de ce genre de délicatesse, à première vue je me demandais bien ce que c'était et puis j'ai laissé le nom proposé par défaut :
Qt by Digia v4.8.3 (VS2010 Commercial)

Tout se fait dans :
C:\Qt\4.8.3

C'est une installation monstrueuse qui se passe sans aucun soucis mais laisse 1,04 Go pour 44 089 Fichiers sur mon disque C:\

Et maintenant comment vais-je pouvoir développer ? Comment vais-je pouvoir créer mon premier projet avec Qt ?

Le menu Démarrer de Qt

L'install de Qt ajoute dans le menu démarrer : "Qt by Digia v4.8.3 (VS2010 Commercial)" les raccourcis suivants :

Assistant (C:\Qt\4.8.3\Bin) : Show Documentation in doc/html
Designer (C:\Qt\4.8.3\Bin) : Outil pour créer des formulaires (des forms ...)
Examples and Demos : (C:\Qt\4.8.3\Bin) qtdemo.exe Un launcher qui exécutes les exemples du répertoire C:\Qt\4.8.3\demos
Linguistic
Qt Command Prompt (C:\Windows\system32) 
Qt Readme (C:\Windows) : Fichier texte on y apprend : HOW TO REPORT A BUG
Visual Studio With Qt (C:\Qt\4.8.3\Bin) : un batch .bat qui va setter des variables d'environnement et lancer un bat de Visual Studio
call "c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
Comme j'ai installé Visual Studio 2010 ce batch existe. Il s'occupe de tester le type de plateforme pour lancer à son tour de nouveau batch cela parait bien empirique ...

Qt VS Add-In Open Source

Autrement dit un Add-In pour Visual Studio ...

J'ai repéré cet Add-In pour Visual Studio page suivante :
http://qt-project.org/downloads
qt-vs-addin-1.1.11-opensource.exe

Je double clique dessus, il s'installe dans :
C:\Program Files\Digia\Qt4VSAddin

Il semble que l'instal se bloque dans :
Extract: qt_4_8_1.cab... 100%
Output folder: C:\Program Files\Digia\Qt4VSAddin\help\qt

Cliquez sur le bouton "Show details"

HelpLibManager.exe : le processus bloqué à 100% de cpu ! -> Terminer le processus
L'exécution de l'instal reprend et se termine !

Mais il semble que l'aide :
help\qt
et
help\qt4vs
soit restée bloquée dans les fichiers .cab !

Il me semble également que cet add-in ne soit compatible qu'avec VS 2005 et 2008 ... d'après des dires sur Internet. Cela ne semble pas très engageant et pourtant ...

Je relance mon Visual Studio pour voir si l'Add-In a joué les pères noël ... Could not connect to Appwrapper. Please make sure TCP port 12005 is not blocked.

Les voies de Qt sont impénétrables ...

Je relance mon VS histoire de voir si l'erreur se reproduit : que nénie rien ... je n'aime pas trop ça. Il se pourrait bien que l'instal du Qt Add-In for VS se soit mal passée.

Installation de Qt avec Visual Studio 2010

Pour utiliser Visual Studio 2010 avec Qt, j'ai trouvé cette page sur Internet :
http://www.siteduzero.com/tutoriel-3-36553-utiliser-qt-avec-visual-studio-2010.html

Mais alors là ! On fait tout à la mimine ! Au moins cela permet de comprendre un peu l'intégration de Qt avec VS.

Mais bref je relance mon VS pour voir si l'Add-In a ajouté quelque chose et là au miracle dans :
File->New project à la rubrique Installed Templates apparait une rubrique :
Qt4 Projects Added by Add-In
Qt4 Projects :
Qt Application
Qt Designer Pluggin
Qt Console Application
Qt Librairie
ActiveQtServer

Je choisis une Qt4 Application et le projet est créé :
Qt4 Application created by Add-In
Je Build et je lance en Debug, j'obtiens la fenêtre suivante :
My first Qt4 Application
Il semble que tout soit pour le mieux, je vais pourvoir commencer à développer en Qt4 avec mon Visual Studio 2010.

Have Fun !

mardi 27 novembre 2012

Qt Introduction

Pourquoi Qt ?

Comme développeur, passionné de développement logiciel, je cherche le Graal,  les outils et le framework qui pourront me permettre de n'effectuer qu'un seul développement pour toutes les plateformes.

Je lis sur Internet des remarques du genre :
Qt provided a cross-platform products operating on Windows, Linux and Macintosh with a single architecture.

Et cela me plait bien. Alors rentrons tout de suite dans le vif du sujet.

Qt existe au moins en deux licences, une version gratuite (pardon pour les puristes Open Source) et une version commerciale que l'on doit utiliser lorsque l'on souhaite développer des applications que l'on va vendre.

Qt Project Open Source

Qt version commerciale Nokia

D'un côté vous avez les tutos de Developper.com qui vous envoient sur la page de nokia :
http://qt.digia.com/

Et là c'est payant, ou plutôt vous avez une version commerciale valable que 30 jours :
http://qt.digia.com/Try-Qt-Now/

C'est curieux dans l'image de Qt Creator vous avez une barre BMI Montpellier ... c'est fun !

Et le prix ? ... Et bien démerdez vous, il faut remplir un formulaire de 10 pieds de long et rien d'autre ... Surprise. Personnellement je n'aime pas ça, je pense donc dès maintenant que je vais comparer si c'est possible les versions commerciale et open source d'un part et que d'autre part j'essayerai de refaire ce que j'ai fais avec la version commerciale avec la version gratuite.

Qt version open sources le Qt Project

D'autre part vous avez le Qt Project  (Open Source) c'est curieux de voir à quel point les deux sites se ressemblent au niveau design.

C'est ici :
http://qt-project.org/downloads

La version 4.6.4 n'est utilisable qu'avec le compilateur MinGW, je voudrais utiliser Visual Studio et son compilateur ça fonctionne avec  la version 4.8.3.

Version 4.8.3 ce numéro est commun aux versions commerciale et open source.

Qt Licences Comparaison

Qt is licensed under a commercial and open source license (GNU Lesser General Public License)

License-comparison
Our recommendation is that you purchase a commercial license.
Bas tu m'étonnes, un truc du genre ; c'est gratuit mais si vous n'êtes pas sûr achetez ...

Ce que l'on ne peut pas faire avec la version open source (pardon LGPL)
entre autre, parmi les choses les plus importantes de la liste voici :

Application source code can be private when linking statically
Additional Qt features and functionality (e.g. charts add-on)
Improved development tools (e.g. embedded Linux target and images)
Online SDK with access to all additional componenets
Possibility to use Qt without delivering the full source of the library code to end users
Possibility to create products without mentioning Qt to the end users
Protection against reverse engineering of the product
Possibility to negotiate on license terms

Je me suis inscrit pour avoir la version commerciale valable 30 jours, je vais donc l'essayer ...
Aurais-je des problèmes après pour repasser à la version open source si je le désire ... intéressante question non ?

Autre remarque :
qt-win-opensource-4.8.3-vs2010.exe : 239 792 Ko
qt-win-commercial-4.8.3-vs2010.exe : 241 284 Ko