Benutzer mit den meisten Antworten
Qt libraries for Windows (VS 2010), Wann sinnvoll und gut?

Frage
-
Hallo,
teils lese ich Kenntnisse in QT sehr wichtig.
Wann ist das hilfreich?
Wann nimmt man das am besten?
Hat das mt Linux, Windows zu tun?
Wie bekommt man am besten Grundkenntnisse?
http://qt.digia.com/Try-Qt-Now/
Das sagt Google Suche
Hat das mit Nokia zu tun?
Danke für weitere Tipps.
Antworten
-
Nun QT ist eine Klassenbibliothek wie es z.B. auch MFC ist, oder auch .NET.
Der Vorteil von QT ist, dass es Plattformübergreifend ist, Du Dein Programm ohne Code Änderungen auf z.B. Windows, Linux oder Mac OS laufen lassen kannst, wenn Du Deine Quellen durch einen entsprechenden compiler auf diesen Plattformen jagst.
QT hat insoweit etwas mit Nokia zu tun, als dass QT mal Nokia gehörte, inzwischen aber Open Source ist.
Wenn Du QT lernen möchtest gäbe es z.B. die Suchbegiffe "QT Tutotial" und Google wird da sicher hilfreiches ausspucken.
Tierfere QT Fragen sind hier aber denke ich eher offtopic. Da würde ich dann eher hier fragen:
Best regards
Bordon
Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.- Bearbeitet Bordon Donnerstag, 13. Dezember 2012 05:59
- Als Antwort markiert Sandra Maier Donnerstag, 13. Dezember 2012 19:20
Alle Antworten
-
Nun QT ist eine Klassenbibliothek wie es z.B. auch MFC ist, oder auch .NET.
Der Vorteil von QT ist, dass es Plattformübergreifend ist, Du Dein Programm ohne Code Änderungen auf z.B. Windows, Linux oder Mac OS laufen lassen kannst, wenn Du Deine Quellen durch einen entsprechenden compiler auf diesen Plattformen jagst.
QT hat insoweit etwas mit Nokia zu tun, als dass QT mal Nokia gehörte, inzwischen aber Open Source ist.
Wenn Du QT lernen möchtest gäbe es z.B. die Suchbegiffe "QT Tutotial" und Google wird da sicher hilfreiches ausspucken.
Tierfere QT Fragen sind hier aber denke ich eher offtopic. Da würde ich dann eher hier fragen:
Best regards
Bordon
Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.- Bearbeitet Bordon Donnerstag, 13. Dezember 2012 05:59
- Als Antwort markiert Sandra Maier Donnerstag, 13. Dezember 2012 19:20
-
Hallo Sandra,
QT ist ein recht altes aber dennoch sehr bewährtes und gutes C++ (only)
Framework.Es kann kostenlos für OpenSource Projekte genutzt werden
aber kommerzielle Unternehmen nutzen meist die kostenpflichtige Variante.
QT kann man mit verschiedenen Programmier Programmen wie z.B dem
hauseigenen QTCreator von Nokia/Digia nutzen
(das ist gewissermassen ein kleines Visual Studio mit grafischer Oberfläche,
GUI Oberflächendesigner und Debugger) man kann aber auch
Microsoft Visual Studio nutzen um QT Programme mit C/C++ zur erstellen.
Unter Windows ist das es sogar meist Standardmässig so das man Visual
Studio C/C++ und QT kombiniert benutzt. Nokia/Digia stellt auch kostenlos
ein Addin für Visual Studio bereit mit dem man Assistentengeführt QT
Projekte erstellen kann (z.B QT spezifische DLL, QT Netzwerk Sockets ect)Aber wie Du schon angedeutet hast. QT wird viel auch im Linux, Mac und
Unix Bereich eingesetzt.Der schöne Vorteil bei QT ist hier einfach, Das Du nur
einen C++ Quellcode brauchst und Du kannst damit ein Programm z.B unter Linux schreiben, das sich nach einmaliger Kompilierung auch direkt unter Windows nutzen
lässt und eine vollwertige Windows Exe ist. Du kannst also z.B unter Linux oder
Mac Programmieren und dann den Projektordner in eine Zip Datei packen und
mit Visual Studio zu kompilieren - ohne das man das Projekt verändern muss.
Man kann natürlich die Vorteile des VC++ Compilers nutzen und z.B PGO oder
SSE2 Optimierungen aktivieren oder ein 64-Bit build des Projekts erstellen
daher nutzen viele C++ Programmierer gerne QT.Es gibt aber auch Nachteile:
QT ist wirklich RIESIG. Wenn Du es z.B innerhalb der neuesten Versionen
von Microsoft Visual Studio benutzen möchtest, dann musst Du es von hand
übersetzen und das kann gut 2-3 Studen dauern. Am Ende belegt es dann
ca 5-6 GByte auf der Festplatte (wenn man es selbst erstellt hat und nicht
einfach die fertig kompiliierte Version nutzen möchte).Ausserdem ist QT strikt C++ only! Das bedeutet Du kannst auf die Funktionen
von QT nur mit der Sprache C++ zugreifen aber nicht mit der C Programmiersprache.
Das ist ein sehr gewichtiger Unterschied.Auch sehe ich es als Problem an, das QT einer einzigen Firma gehört. Leider
wurde QT in den letzten Jahren von verschiedensten Firmen gekauft und
verkauft und jeder neue QT Besitzer kann die Spielregeln/Lizenzbedingunbgen
mal eben ändern, was mir ehrlich gesagt gar nicht gefällt.Als freie Alternative für QT kann man die GTK-Bibliothek des GNome
OpenSource Projekts benutzen.Diese ist in C umgesetzt, hat aber auch
Anbindungen an C++, Python und viele andere verfügbare Programmiersprachen
so das dies kein Nachteil ist.GTK bietet aber nur ganz bestimmte Funktionen, ist daher aber auch
kleiner und handlicher als QT. Nach meiner Erfahrung reicht GTK allerdings dicke
für die meisten GUI Programme, seis nun unter Windows, Linux, Mac oder Unix
oder alle drei zusammen(es unterstützt auch OpenGL so das damit auch sehr
komplexe 3D Projekte umgesetzt werden können) Wer zusätzliche Funktionen
für GTK benötigt, kann sich weiterer, frei und kostenlos verfügbarer Zusatz
Bibliotheken wie z.B GNU gettext (für Internationalisierung) oder z.B libxml2
(XML Hilfsbibliothek) bedienen die sich nahtlos im Zusammenspiel mit GTK verwenden lassen und auch von vielen Programmierern auf diese Art eingesetzt werden.
An GTK gefällt mir, das Du sowohl Microsoft Visual Studio als auch alternative
Programmierwerkzeuge verwenden kannst um damit Mac, Windows, Linux oder
Unix als 32 und 64-Bit kompilat erstellen kannst.
Natürlich ist es aber auch möglich QT und GTK Funktionen sowie Microsoft Libs
wie z.B Win32-API oder MFC im mix zusammen zu verwenden, was hilfreich sein
kann, z.B wenn man ein grösseres oder älteres Programm hat das man pflegen
und erweitern muss und das sich nicht einfach mal eben umstellen lässt.
Hier einige Links zu GTK:
http://www.gtk.org/documentation.php (einfach alles inkl Beispielprogramme)
http://www.gtk.org/screenshots/index.php (so sehen GTK Programme aus)Und hier der Download damit Du eigene GTK Programme für Windows,
Mac,Linux und Unix brauen kannst. http://www.gtk.org/download/index.phpEin typisches GTK Programm sieht ungefähr so aus, egal ob nun unterWindiows/Linux/Mac/Unix und egal ob 32 or 64-Bit.
#include <gtk/gtk.h> #include <stdlib.h> void displayUI() { GtkWidget* mainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(mainWindow), 400, 300); gtk_window_set_title(GTK_WINDOW(mainWindow), "Mein erste GTK Fensterprogram"); gtk_window_set_position(GTK_WINDOW(mainWindow), GTK_WIN_POS_CENTER_ALWAYS); gtk_signal_connect(GTK_OBJECT(mainWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(mainWindow); } int main(int argc, char *argv[]) { gtk_init(&argc, &argv); displayUI(); // <-- Fenster aufrufen! gtk_main(); return EXIT_SUCCESS; }
Anstatt die Fenster und GUI Elemente per Code zu definieren gibt es bei GTK
aber genau wie bei der MS MFC oder bei QT den QT Designer ein grafisches Hilfsprogramm um oberflächen zu designen das sich Glade nennt. Damit lassen sich, ähnlich wie von
MS Visual C/C++ MFC bekannt per Drag&Drop GUI's zusammen klicken.Siehe: http://glade.gnome.org/images/glade-main-page.png
- Bearbeitet Peter S. Meyer Donnerstag, 20. Dezember 2012 09:25 Erweiterung