Anzeige:
Ergebnis 1 bis 14 von 14

Thema: GUI-Programmierung mit QT oder GTK?

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.05.2005
    Ort
    Leipzig
    Beiträge
    29

    GUI-Programmierung mit QT oder GTK?

    Hallo,

    ich beginne gerade mich mit Grafischer Programmierung unter zu beschäftigen und suche gerade gute Quelle&Literatur.
    Ich denke eine gute Wahl für eine Programmiersprache unter Linux wäre C(++).

    Könnt Ihr mir irgendwas empfehlen?
    (Darf auch englischsprachig sein!)

    Mir geht es dabei hauptsächlich um die Entwicklung eines GUIs für ein Konsolenprogramm.
    Die GUI sollte allerdings ohne Fenstermanager lauffähig sein.
    (Ähnlich den ganzen Programmen, die ein Pseudo-Windows vortäuschen: TrueImage, Partition Magic, ...)

    Thovan

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Das sollte sowohl mit Qt (Qtopia, also das Embeddedding läuft auf Framebuffer) als auch mit Gtk http://www.directfb.org/wiki/index.p...TK_on_DirectFB möglich sein.

    Gtk dürfte wohl etwas mehr gebastel werden. Wobei Debian hat schon Pakete (wohl fürn Installer) - also eigentlich auch kein Problem.

    Im Allgemeinen dürfte wohl bei beiden die grundsätzliche Programmierung nicht anders sein, ob man jetzt für X oder für Framebuffer entwickelt.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2005
    Ort
    Leipzig
    Beiträge
    29
    Zitat Zitat von peschmae Beitrag anzeigen
    ...
    Danke für den Hinweis,
    hast Du zufällig auch noch gute Quellen/Literatur-Tipps für mich, wo die herangehensweise gut erklärt wird?

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Also was jetzt genau? Qt? Gtk? Allgemein oder spezifisch auf Framebuffer? Wenn Gtk mit C oder C++?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.05.2005
    Ort
    Leipzig
    Beiträge
    29
    Zitat Zitat von peschmae Beitrag anzeigen
    Also was jetzt genau? Qt? Gtk? Allgemein oder spezifisch auf Framebuffer? Wenn Gtk mit C oder C++?

    MfG Peschmä
    Hm...
    naja optimalerweise die Kombination die für mein Vorhaben am geeignetsten ist.
    Ich konnte mal etwas C, aber da ich mich sowieso wieder neu einarbeiten muss macht es für mich wohl keinen Unterschied ob C oder C++!

  6. #6
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Ich denke mit Qt dürftest du einfacher zum Ziel kommen.

    Andererseits mag ich Gtk Applikationen vom Look&Feel her einfach besser.

    Bei Qt gilts auf jeden Fall auch die Lizenzfrage zu beachten: Qt ist GPL Lizenziert, ausser du kaufst dir eine Lizenz (*vor* der Entwicklung des Programmes). D.h. wenn du ein Programm mit dem freien Qt erstellst dann ist deine Applikation auch zwingend wieder unter der GPL (oder einer kompatiblen Lizenz, BSD oder so).
    Nicht dass das schlecht wäre - wenn du das Programm sowieso GPLen willst kein Problem

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  7. #7
    Registrierter Benutzer Avatar von Sym
    Registriert seit
    05.09.2002
    Ort
    Bremen
    Beiträge
    278
    Inwiefern findest Du das L&F von Gtk besser? Mein Qt sieht nativ aus.
    Denk mal drüber nach...

    Lars

    ACHTUNG: ersetze Linux durch GNU/Linux an den entsprechenden Stellen
    www.macuser.de, MSVC2005 Express und Qt, Qt/Mac installieren

  8. #8
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Wenn man (wie ich) GNOME braucht, passt GTK+ besser ins Gesamtbild des Desktops als Qt. Abgesehen davon sind afaik zum Teil Buttons in Dialogen vertauscht.

  9. #9
    Registrierter Benutzer Avatar von Sym
    Registriert seit
    05.09.2002
    Ort
    Bremen
    Beiträge
    278
    Ah ok, das verstehe ich. Ich habe unter Windows wie auch unter OSX nur einen WM und deshalb nicht das Problem damit.
    Denk mal drüber nach...

    Lars

    ACHTUNG: ersetze Linux durch GNU/Linux an den entsprechenden Stellen
    www.macuser.de, MSVC2005 Express und Qt, Qt/Mac installieren

  10. #10
    Registrierter Benutzer
    Registriert seit
    23.05.2005
    Ort
    Leipzig
    Beiträge
    29
    Zitat Zitat von peschmae Beitrag anzeigen
    Andererseits mag ich Gtk Applikationen vom Look&Feel her einfach besser.

    Bei Qt gilts auf jeden Fall auch die Lizenzfrage zu beachten: Qt ist GPL Lizenziert, ausser du kaufst dir eine Lizenz (*vor* der Entwicklung des Programmes). D.h. wenn du ein Programm mit dem freien Qt erstellst dann ist deine Applikation auch zwingend wieder unter der GPL (oder einer kompatiblen Lizenz, BSD oder so).
    Ok, da ich den Werdegang meiner Applikation nicht kenne und weil auch so nützliche Programme wie Gimp und Sylpheed-Claws auf GTK aufsetzen wäre das wohl eher was für mich.

    Ob nun C oder C++ besser geeignet wäre, weiß ich nicht.
    Vermutlich eher C++, oder?
    (Berichtigt mich, wenn ich da falsch liege.)

    Dementsprechend wären dann auch meine Anforderungen an Tutorials/Literatur.

  11. #11
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Also wenn du jetzt Gtk+ verwendest, mit C++, dann am besten mit den Gtkmm bindings. Die sind recht gut dokumentiert - u.A. auch mit einem Buch: http://www.gtkmm.org/docs/gtkmm-2.4/docs/
    Vorausgesetzt natürlich du kannst (etwas) C++.

    C++ ist für Gui Programmierung auf jeden Fall besser geeignet als C. Objekte bieten sich da noch viel mehr an als überall sonst. Wenn du Gtk+ mit C programmierst ist das auch objektorientiert, nur überhaupt nicht so nett wie bei C++. Halt alles nachträglich von den Gtk-Leuten angebaut...

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  12. #12
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    C/C++: GTK+ selbst ist in C implementiert, es gibt aber für C++ (und jede Menge andere Sprachen: zb Perl, Python) Bindings. Wenn du C verwenden willst:
    http://www.gtk.org/tutorial/ und
    http://www.gtk.org/api/
    C++:
    http://www.gtkmm.org/
    http://www.gtkmm.org/docs/gtkmm-2.4/docs/

    /edit: war ich nicht ganz schnell genug ;-)

  13. #13
    Registrierter Benutzer
    Registriert seit
    23.05.2005
    Ort
    Leipzig
    Beiträge
    29
    Danke euch beiden.
    Ich werd's mir mal reinziehen und schauen, ob ich damit klarkomme.

  14. #14
    Registrierter Benutzer Avatar von Fabeltier
    Registriert seit
    02.10.2006
    Beiträge
    51
    Hallo,

    C oder C++
    C++ unterstuetzt objektorientierte Konzepte schon mit Sprachmitteln (um das mal vorsichtig auszudruecken). In C muss man fuer einen objektorientierten Stil etwas mehr "rumimplementieren". Das hat beides Vor und Nachteile, die vielen Moeglichkeiten in C++ sollten auch erst mal erlernt und verstanden werden, bevor man sie nutzt. Dazu gehoert u.a. das einarbeiten in die Standard Template Library, wofuer man erstmal wissen sollte was bspw. Templates sind, etc. C ist imo von der Sprache her das Paradoxon aus der Fuelle der Moeglichkeiten und dem Minimalismus der Sprachelemente D.h. man hat imo die Sprache vllt schneller erlernt als C++, dafuer kommt's aber dann drauf an, was man weiter machen will und man tippt natuerlich mehr, weil wie das in einem Forum mal jemand so schoen gesagt hat, C++ ist der Autofahrer der schneller ist und C nur der Fussgaenger, aber der Fussgaenger kommt halt auch ueberall hin. Meiner persoenlichen Meinung nach ist gerade im GUI Bereich C++ oder Java geeigneter als C.

    GTKmm oder Qt
    Leider kann ich zu GTKmm (oder anderen) nicht recht viel sagen, vor zwei Wochen hab ich mal einen Link gelesen, dass GTKmm wohl nicht so platformunabhaengig ist wie Qt (?), dafuer ist es wohl mit GTKmm auch moeglich Closed Source zu produzieren, wofuer man bei Qt als einzigen Grund eine Lizenz benoetigt. Qt soll sich also geschmeidiger von Linux auf Windows und anderes (v.a. auch embedded Bereich) portieren lassen. Qt4, das nun schon etwas draussen ist, unterscheidet sich imo schon etwas vom 3er (was ich selber damals aber nur perifer mitbekam) und bietet einiges mehr an Funktionalitaet. Qt4 ist zwar natuerlich abwaertskompatibel, aber bei den meisten Distris unter Linux ist afaik immer noch das 3er eher der Standard. Qt kommt mit einem GUI Builder (QtDesigner) und einigem an Dokumentation, Tutorials, etc. Als Buch kann ich selber folgendes empfehlen: "C++ GUI Programming with Qt4" (Blanchette, gibt's glaub ich auch auf deutsch). Mit Qt und den eigenen Containern ist es wiederum moeglich in vielen Faellen auf die STL zu verzichten, weil die Qt mit eigenen Containern aufwartet die mit den eigenen Widgets auch optimiert zusammenarbeiten; selber Streams verwaltet und dabei auch Typen zur Verfuegung stellt, die eine gewisse Speichergroesse garantieren - ein Problem in C++, da dort afaik nur die Mindestgroesse eines jew. Typs festgelegt wird, sich dieser aber je nach System/Compiler unterschiedlich erweitert. Qt's eigene Container und eigene Konstrukte erinnern imo auch oft an Java - Qt bietet hier bspw. Signals and Slots aber auch Actions und Events (eher "lower level") oder auch wieder die foreach Schleife.

    PS: Mir gefaellt Gnome auch viel besser als KDE, aber was solls, man kann beides verwenden

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •