Ergebnis 1 bis 10 von 10

Welches C++ GUI Framework

  1. #1 Zitieren
    Krieger Avatar von Lord of Alchemy
    Registriert seit
    Apr 2010
    Ort
    Berlin
    Beiträge
    431
    Hallo,

    ich habe mir vor ein paar Wochen ein Buch über C++ gekauft und es ein wenig durchgearbeitet bzw. mir ein paar Grundlagen erarbeitet. Ich möchte nun langsam von den Konsolenanwendungen weg kommen und damit beginnen kleinere GUI-Anwendungen für Windows zu programmieren.
    Nun stellt sich die Frage mit welchem GUI Framework ich beginnen soll. Ich würde mich in der Hinsicht der Masse anschließen und gerne mit dem anfangen, welches am meisten genutzt wird. Nur leider habe ich keinen Schimmer welches das ist, kann mir da jemand weiterhelfen?

    Vielen Dank schonmal im Voraus.

    Gruß,
    Lord of Alchemy
    Lord of Alchemy ist offline

  2. #2 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Hier ein Überblick über die gängisten Optionen:

    Von Microsoft:

    Windows API (a.k.a. WinAPI, a.k.a Platform SDK): nicht gerade modern, hoher Entwicklungsaufwand, verwendet keine Features von C++ sondern beschränkt sich auf den Teil von C++, der auch in C verfügbar ist. Wenn du dich ernsthaft mit MS-Windows beschäftigst solltest du sie aber kennen. Auf MS-Windows beschränkt. Falls du diesen Weg gehst, dann besorg dir das Buch von Charles Petzold.

    Microsoft Foundation Classes (a.k.a MFC): C++-Wrapper um die Windows API. Von Microsoft entwickelt, aber intern nie eingesetzt. Nicht in der Express-Edition von Visual Studio verfügbar. Auf MS-Windows beschränkt.

    Windows Forms: Aus dem .NET Framework von Microsoft. Du musst eine neue Programmiersprache lernen (genannt C++/CLI). Anstatt C++/CLI einzusetzen würde ich aber eher C# nehmen. Im Rahmen von Mono auch auf anderen Betriebsystemen verwendbar.

    Windows Presentation Foundation: Aus dem .NET Framework von Microsoft. Soll wohl Windows Forms ablösen. Ebenfalls nicht mit Standard-C++ einsetzbar. Im Rahmen von Mono auch auf anderen Betriebsystemen verwendbar (wenn nicht jetzt, dann in naher Zukunft).

    Alle diese sind sehr gut dokumentiert, allerdings dauert es eine gewisse Zeit bis man sich in der Dokumentation zurecht findet.

    Von anderen Anbietern:

    wxWidgets: Platformunabhängige Bibliothek, die sich an MFC orientiert. Neuere Versionen scheinen mir durchdachter als MFC zu sein, allerdings wird eine Menge Balast aus alten Tagen mitgeschleppt. Ich hatte Probleme mit der aktuellen Beta-Version, bin deshalb von wxWidgets weggegangen (ich habe allerdings unter Linux entwickelt, die Windows-Version ist besser). Mittelmäßige Dokumentation, allerdings gibt es ein Buch zu wxWidgets. Beispiel: Audacity.

    Qt: Ursprünglich für UNIX entwickelt. Wird von KDE verwendet und von Nokia gepflegt und auch für Embedded Systems und weitere Betriebsysteme angeboten. Relativ modern, aber man muss mit dem beiliegenden Meta-Object-Compiler zusätzliche Quelltextdateien erzeugen bevor man GUI-Klassen kompilieren kann. Gute Dokumentation. Beispiel: Skype.

    GTK+: Ursprünglich für UNIX entwickelt. Wird von Gnome verwendet und gepflegt. Sehr modern, aber schlecht dokmentiert (aber das Buch von Havoc Pannington gibt es im Internet). Eigentlich in C geschrieben, eine C++-Anbindung gibt es aber unter dem Namen gtkmm. Beispiel: Pidgin.
    ojas ist offline Geändert von ojas (13.03.2011 um 13:40 Uhr)

  3. #3 Zitieren
    Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
    Registriert seit
    May 2009
    Ort
    Hölle
    Beiträge
    1.351
    Ich für meinen Teil kann Qt nur empfehlen. Gute Dokumentation, gute Struktur. Lässt sich auch für komplexe Programme verwenden(Bsp.: Autodesk Maya 2011).
    Headcool ist offline

  4. #4 Zitieren
    Held Avatar von Lolomoloko
    Registriert seit
    Aug 2006
    Ort
    ~/
    Beiträge
    5.700
    Zitat Zitat von Headcool Beitrag anzeigen
    Lässt sich auch für komplexe Programme verwenden(Bsp.: Autodesk Maya 2011).
    seit wann hat die gui etwas mit der komplexität von software zu tun
    Lolomoloko ist offline

  5. #5 Zitieren
    Krieger Avatar von Lord of Alchemy
    Registriert seit
    Apr 2010
    Ort
    Berlin
    Beiträge
    431
    Zitat Zitat von ojas Beitrag anzeigen
    Hier ein Überblick über die gängisten Optionen:

    Von Microsoft:

    Windows API (a.k.a. WinAPI, a.k.a Platform SDK): nicht gerade modern, hoher Entwicklungsaufwand, verwendet keine Features von C++ sondern beschränkt sich auf den Teil von C++, der auch in C verfügbar ist. Wenn du dich ernsthaft mit MS-Windows beschäftigst solltest du sie aber kennen. Auf MS-Windows beschränkt. Falls du diesen Weg gehst, dann besorg dir das Buch von Charles Petzold.
    Also wäre es klug sich mit WinAPI die Grundlagen beizubringen, um dann später richtig einzusteigen?
    Lord of Alchemy ist offline

  6. #6 Zitieren
    Mythos Avatar von Pyrokar
    Registriert seit
    May 2004
    Ort
    ..... hihihähähä hier gibt es Wände und wenn ich dagegen Lauf prall ich ab, wie ein Flummi..... hihihähähääähääääää
    Beiträge
    8.115
    Zitat Zitat von Lolomoloko Beitrag anzeigen
    seit wann hat die gui etwas mit der komplexität von software zu tun
    Je nach angelegtem Komplexitätsmaß und Einbindungsaufwand eines GUI-Frameworks sehr viel
    [Bild: gg_schuetzen_ani.gif] | ~ DauJones ~ | ~ Klopfers-Web ~ | ~ German Bash ~ |
    Die meisten und schlimmsten Übel, die der Mensch dem Menschen zugefügt hat, entsprangen dem felsenfesten Glauben an die Richtigkeit falscher Überzeugungen.
    Bertrand Russell
    Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat. anonym
    Pyrokar ist offline

  7. #7 Zitieren
    Ehrengarde
    Registriert seit
    May 2004
    Ort
    Midgard
    Beiträge
    2.185
    Zitat Zitat von Lord of Alchemy Beitrag anzeigen
    Also wäre es klug sich mit WinAPI die Grundlagen beizubringen, um dann später richtig einzusteigen?
    Wenn du gerade erst C++ gelernt hast (bzw. immer noch lernst), solltest du erst mal nicht unbedingt eine C-Schnittstelle, wie die WinAPI, nutzen. Sonst besteht die Gefahr, dass du dir einen schlechten Stil angewöhnst oder durcheinander kommst. Also solltest du dich, sobald du C++ einigermaßen kennst, mit einer richtigen C++ GUI Bibliothek beschäftigen (wurden ja schon einige genannt). Am besten ist es wohl, wenn du dir mal etwas Zeit nimmst und dir mehrere Alternativen anschaust.

    freundliche Grüße, Rolus
    Rolus ist offline

  8. #8 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Zitat Zitat von Lord of Alchemy Beitrag anzeigen
    Also wäre es klug sich mit WinAPI die Grundlagen beizubringen, um dann später richtig einzusteigen?
    Das kommt darauf an, was du mit Grundlagen meinst.

    Technisch gesehen ist die WinAPI sicherlich die Grundlage, auf die andere Windows-Bibliotheken aufbauen.

    Didaktisch gesehen ist es aber nicht als Fundament geeignet, das es ermöglicht, neu gelerntes einzuordnen. Da empfehle ich eher Windows Forms, wxWidgets oder Qt.
    ojas ist offline

  9. #9 Zitieren
    Krieger Avatar von Lord of Alchemy
    Registriert seit
    Apr 2010
    Ort
    Berlin
    Beiträge
    431
    Ich kann mich einfach nicht entscheiden^^
    Welches Framework ist denn euer Favourit? Was nutzen "Profis"? Oder ist es wirklich vollkommen egal, da es im Prinzip alles das Gleiche ist?
    Lord of Alchemy ist offline

  10. #10 Zitieren
    Ritter Avatar von ojas
    Registriert seit
    Jun 2008
    Ort
    Erde
    Beiträge
    1.787
    Profis verwenden das was am besten zu den Erfordernissen des Projektes passt. Allerdings haben die auch den nötigen Überblick, sich bei Bedarf schnell in eine neue GUI-Bibliothek einzuarbeiten.

    Ich benutze für mein aktuelles Projekt Gtk+. Der GUI-Builder gefällt mir, es gibt Portierungen für MS-Windows und MacOS X und ich brauche keine Macros und keinen Meta Object Compiler zu verwenden.

    Für Anfänger empfehle ich Qt oder Windows Forms.
    ojas ist offline Geändert von ojas (14.03.2011 um 11:29 Uhr)

Berechtigungen

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