none
Qt libraries for Windows (VS 2010), Wann sinnvoll und gut? RRS feed

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:

    http://www.qtforum.de/forum/


    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
    Donnerstag, 13. Dezember 2012 05:55

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:

    http://www.qtforum.de/forum/


    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
    Donnerstag, 13. Dezember 2012 05:55
  • 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.php

    Ein 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
    Mittwoch, 19. Dezember 2012 08:39