Qt Setup mit Visual Studio (Windows)

Ich habe vor einer Weile damit "gedroht", dass ich einen Post zum Setup von Qt mit Visual Studio verfassen werde. Hiermit komme ich dieser "Drohgebärde" nach. :)

Vorab eine kleiner Ausflug, wieso man überhaupt Qt mit Visual Studio benutzen wollen sollte: 

Zur Rekapitulation, was ist Qt? Das Qt - Framework (aussgesprochen wie das englische "cute") ist ein umfassendes Framework zur Programmierung von grafischen Oberflächen mit C++. Das Qt - Framework hat aber auch Anbindungen zu vielen anderen bekannten Sprachen wie Java (Qt Jambi), C# (QtSharp und andere) oder Rust (Rust-Qt). 

Qt besitzt eine eigene Markup Sprache für die Beschreibung der visuellen Elemente wie HTML, genannt QML. Ausserdem behaupten die Qt Entwickler, dass Ihr Code auf allen Platformen kompilierbar ist, sprich "Einmal Code schreiben, überall kompilieren". Aber das geht natürlich nur, wenn man sich auch strikt an die von Qt zur Verfügung gestellten Abstraktionen hält. Man sollte zum Beispiel für das Multithreading auf jedenfalls auf QThread zurückgreifen und nicht eine platformspezifische Bibliothek benützen. 

Qt ist ausserdem ein Industriestandard, wenn es darauf ankommt, auf C++ basierte Software mit grafischen Oberflächen zu realisieren. Dies kann für Desktopapplikationen relevant sein oder auch für embedded Systems. Einige prominente Produkte von Qt sind zum Beispiel Autodesk Maya (3D Software Suite), Wireshark, Opera und Skype. 

Aber damit kommt auch ein grosses "ABER" mit Qt: Es besitzt nämlich lizensierte und open-source Varianten. Bestimmte komplexe Abstraktionen und Implementationen brauchen die lizensierten Bibliotheken. Hier will ich aber ein bisschen entgegensteuern: In meiner Studienarbeit kam ich mit der open-source Variante klar und habe keines der lizenzierten Biblitoheken in Anspruch nehmen müssen, denn die open-source Variante bietet das meiste, was man braucht, sowieso schon an. Die lizensierten Bibliotheken werden eher in Nischenszenarien relevant. Man bedenke nur, dass das open-source Programm Wireshark mit Qt geschrieben worden ist und Wireshark ist ein mächtiges Tool.

Aber es gibt natürlich Alternativen zu Qt, wie wxWidgets, die komplett open-source sind. Für diejenigen, die auf jede Fälle sicher gehen möchten, könnte dies eine Alternative sein. 

Quelle: https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/QtCreator-Linux-2.0.1.png/1200px-QtCreator-Linux-2.0.1.png

Und die Alternativen können schnell einmal attraktiv wirken, wenn man heruasfindet, dass die Qt IDE, Qt Creator nicht gratis erhältlich ist. Nach einer 30-tägigen Evaluationsphase kann man das IDE nicht gebrauchen. Und Qt Creater ist nicht gerade günstig, dass man einen Kauf so einfach mal in Erwägung ziehen könnte. Und hier kommen wir auf das Thema dieses Posts: Qt mit Visual Studio.

Die Qt Integration mit Visual Studio ist relativ einfach, wenn man einmal weiss, was man macht. Visual Studio hat hierzu speziell ein Qt Plugin, dass viele Schritte in der Entwicklung vereinfacht, wie zum Beispiel das automatische kompilieren von .ui Dateien in C++ Code und das Erweitern von C++ Klassen mit Metainformation (moc'ing). Wollte man mit Qt in Visual Studio ohne das Plugin programmieren, wäre das natürlich möglich. Man müsste auf jedenfalls die Zwischenschritte einfach manuell ausführen. Hierzu enthält die Bibliothek die nötigen Executables (ie. moc.exe etc.).

Aber da Visual Studio schon einmal solch ein Plugin anbietet, wollen wir es auch nutzen. Dies vereinfacht viele Schritte in der Entwicklung. Mit Qt Designer, einem gratis Tool, die mit der Qt Framework Installation ausgeliefert wird, hat man zusätzlich ein Werkzeug, in dem man visuell die grafischen Elemente anordnen kann. Die Kombination aus Qt Framework, Qt Designer und Visual Studio macht die Entwicklung von UI's mit C++ und Qt ein angenehmes Erlebnis. Und so geht das:

1) Was wir brauchen


- Visual Studio 2015 Community Version

- Qt open-source für Windows, 5.6.0, 32/64bit:

http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-windows-x86-msvc2015-5.6.0.exe

http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-windows-x86-msvc2015_64-5.6.0.exe

2) Installation

Wenn mit dem Installer für Visual Studio 2015 gearbeitet wird (die oben angegeben Links sind z.B. solche), dann muss nachträglich noch der bin - Dossier (Dossier unter Qt Installation, die qmake.exe enthält) in die Umgebungsvariablen eingetragen werden. Das Qt - Dossier muss zusätzlich im Qt5 - Tab, der nach der Installation von Qt Addins und Neustart von Visual Studio im Menu Tab erscheint, unter Qt Options gesetzt werden. 

Quelle: http://i1-win.softpedia-static.com/screenshots/Qt-Visual-Studio-Add-in_1.png

Das Addin kann man sich unter Visual Studio unter Extras > Extensions and Updates holen. Dazu muss man einfach in der Online - Biblitohek nach Qt suchen und es erscheinen die Addins "Qt Visual Studio Tools". Der Grund, wieso man im Options Tab des Addins das Qt -Dossier einfügt, ist einfach: Anhand dieser Einstellungen weiss das Addin, wo er die nötigen Exectuables für die automatische Ausführung der Zwischenschritte finden kann. Hier ist einfach wichtig, dass man das Qt - Dossier einfügt (Dossier, unter der sich direkt das bin-Dossier befindet), denn das Addin steuert das bin - Dossier selbst an). Danach sollten unter Neue Projekte im Global Tab Qt Application Vorlagen erscheinen, mit denen man ein Qt Projekt aufsetzten kann. Ab diesem Punkt sollte das Projekt ohne Probleme kompilieren und Qt Programme entwickelt werden. 


Quelle: http://www.bogotobogo.com/Qt/images/VS_Add_In/NewProject.png

Je nachdem muss man unter Projekteigenschaften, C/C++ Tab die Includeverzeichnisse ergänzen (wie z.B. ${QTInstallDIR}/include/QtWidgets), wenn man bestimmte zusätzliche Bibliotheken verwenden will. Aber es ist ratsamer, die Includes und Biblitohek - Verlinkungen automatisch per Qt Addin vorzunehmen. Im Addin kann man per Dialog auswählen, welche Bibliotheken man zusätzlich verwenden will und diese werden automatisch in die Buildeinstellungen übernommen. So kann man auch später dynamische Biblitoheken wieder herausnehmen, wenn man sie nicht mehr braucht.

Und so hat man Qt mit Visual Studio aufgesetzt und man kann Programme mit Qt und C++ entwickeln. Die Zwischenschritte werden vom Qt Addin automatisch vorgenommen ,so dass man sich nur noch auf die Programmierung konzentrieren muss. Für die Auslieferung sollte jedoch bedacht werden, dass die entsprechenden dynamischen Biblitoheken in das gleiche Verzeichnis wie das Exectuable platziert werden müssen, vor allem wenn man mit dynamischer Linkung das Programm erstellt (was auch Sinn macht, sonst erhielte man ein sehr grosses .EXE am Schluss --> ausserdem wird per Default so kompiliert, also mit den dynamsichen DLL's).

Auf diese Weise kann man mit "gratis" Tools und der open-source Biblitohek von Qt eigene C++ Programme mit grafischen Oberflächen entwickeln. Man kann die angegeben Schritte auch analog für Visual Studio 2017 umsetzten, falls von Qt her schon die open-source Variante für 2017 bereitgestellt worden ist. Ob die Version 5.6.0 mit VS2017 funktioniert, konnte ich bisher noch nicht testen.

Ich hoffe, dieser Post gibt euch mindestens einen Anhaltspunkt, wie man Qt mit Visual Studio aufsetzt und damit anfangen kann, Programme zu schreiben.


In meinem nächsten Post werde ich versuchen, das Setup von Tests in Visual Studio mit Qt zu illustrieren. Also, bis zum nächsten Mal!




Kommentare

Beliebte Posts aus diesem Blog

Cling mit Windows

Bald - Artikel zu IT Themen!