Welches GUI Framework benutzen?



  • Hallo, ich bin C++ Anfänger und wollte jetzt so langsam von der Konsole wegkommen.
    Ich habe deswegen mal ein bisschen im Internet recherchiert und verschiedene Sachen gefunden: Qt, GTK+, wxWidgets. Meine Frage ist also welches Framework man am besten nimmt und wo die Unterschiede alle sind.

    Vielen Dank für die Hilfe! Und wie gesagt ich bin ein blutiger Anfänger deswegen wäre es nett wen ihr vieleicht das ein bisschen einfacher erklären könntet. 😀



  • Hast du schon (den gepinnten Artikel) [HOWTO] Welches Toolkit für GUIS? durchgelesen?

    Mit welchem Betriebssystem programmierst du denn (und für welche möchtest du)?



  • Hallo, erstmal danke für die schnelle Antwort und für den Link. Den Link werde ich mir gleichmal durchlesen. Zu deiner Frage ich benutzte Linux und Windows am liebsten benutze ich Linux aber mit Windows hab ich auch kein Problem.
    Und es sollte am besten für alle Plattformen also übergreifend.



  • Nana (http://nanapro.org) ist nett, einfach und modern.



  • @Hubert-Alfonsius

    Das hört sich super an.
    Gibt es irgendwelche Videos / Tutorials etc. die du mir Empfehlen kannst?



  • Für den Einstieg ist Nana recht nett, aber du solltest nicht zu viel davon erwarten, da die Liste der Widgets doch recht begrenzt ist, s. Nana C++ Library Documentation. Dort gibt es auch eine Einführung: An Introduction to Nana C++ Library sowie Getting Started.

    Daher gibt es auch (fast) keine Tutorials darüber.
    Weitere Beispielprogramme gibt es aber unter Nana C++ Library: Examples.

    Persönlich würde ich von den 3 zuerst erwähnten Frameworks Qt benutzen (auch wenn der Einstieg etwas schwieriger ist, da man ein Verständnis für das Meta-object System (moc) entwickeln muß).
    Es gibt auch eine spezialisierte IDE dafür: Qt Creator (insbesondere hilfreich beim Arbeiten mit QML-Projekten).



  • Wobei Qt so ungefähr genau das gegenteilige Ziel von Nana verfolgt. Im Gegensatz zu Nana ist es nämlich viel viel mehr als nur eine GUI lib ... so findest du z.B. QString, QVector, QList ... Network Kram ... Datenbank Kram etc. alles auch in Qt.
    Ob das jetzt gut ist oder schlecht sei mal dahingestellt, dir sollte nur bewusst sein, dass QT einfach mehr als nur GUI ist und zu versuchen es nur auf GUI zu beschränken, klappt meiner Erfahrung nach auch nur so mittel gut.
    Darüber hinaus programmiert man in Qt etwas anders als du es (hoffentlich) vermutlich mal gelernt hat ... nicht zuletzt even wegen moc, object trees etc.
    An dieser Stelle also der Tipp, ein wirklich solides C++ Grundwissen mitzubringen. Ich vermute, wenn man das nicht hat, gewöhnt man sich durch Qt schlechten Stil an (z.B. weil man nicht versteht, warum Qt überall immer pointer verwendet und es dann einfach selbst macht).
    Generell solltest du solide Grundkenntnisse in C++ haben, bevor du dich mit GUI Sachen beschäftigst. Wie lange programmierst du schon C++? Wie hast du es gelernt?
    Da du dich selbst schon als "blutiger Anfänger" bezeichnest, solltest du wirklich nochmal überdenken, ob du schon so weit bist 😉



  • @Leon0402

    Also ich habe mit HTML und CSS angefangen und Webseiten erstellt. Dies wurde mir dann zu langweilig und ich bin zu Java gewechselt dort hab ich mich dann mit Java und JavaFX beschäftigt. Weil JavaFX nicht so gut funktioniert hat bin ich zu Spiele Entwicklung gegangen mit Unity und C. Da hab ich dann bemerkt das mir die Grundlagen fehlen.
    Deswegen bin ich zu C++ gewechselt wo ich mir mit Internet Tutorials und einen Udemy Kurs die Grundlagen beigebracht.
    Ich Programmiere C++ schon seit etwa 3 Monaten.
    Deswegen wollte ich auch GUIs programmieren weil das Konsolen programmieren langsam langweilig wird und weil ich keine Ideen mehr hab.



  • Gerade hab ich mir mal ein bisschen SFML angeschaut ich weiß den Unterschied zu QT. Ich möchte eigentlich nur so simple kleine Programme / Spiele erstellen da wäre SFML ja eigentlich besser oder irre ich mich da.
    Aber es sollte schon umfangreich sein, das ich da auch eine lange Zeit dran bleiben kann.



  • @LotosKaiser04 sagte in Welches GUI Framework benutzen?:

    Gerade hab ich mir mal ein bisschen SFML angeschaut. Ich möchte eigentlich nur so simple kleine Programme / Spiele erstellen da wäre SFML ja eigentlich besser oder irre ich mich da.
    Aber es sollte schon umfangreich sein, das ich da auch eine lange Zeit dran bleiben kann.

    Für Spiele und was anderes als Schaltflächen im Fenster zeigen ist SFML schon gut und relativ einfach. Zwar schon etwas älter, aber dort wird gezeigt, wie man einfache Spiele mit SFML machen kann.

    Spiele programmieren mit C++ und SFML 2.1
    https://www.youtube.com/playlist?list=PLEKi_3CFmr1TkOE6CMtanKeRf4nAknIhw

    (Die Qualität der Codes kann ich nicht voll einschätzen)



  • @zeropage
    Also eignet sich SFML nur so für Spiele Entwicklung?
    Ich wollte eigentlich mehr so in Programm Entwicklung gehen also z.B so ein kleinen Taschenrechner programmieren.



  • Mit SFML kannst Du alles in ein Fenster zeichnen, was Du möchtest. Mit einer GUI erstellst Du Oberflächen, um ein Programm zu steuern, also Schaltflächen, Klickdings halt, die Sachen die Du kennst, die über die Konsole hinausgehen.

    Du kannst natürlich auch mit SFML Schaltflächen zeichnen, die auf Mausaktion reagieren. Kann das nicht so professionell ausdrücken, aber ich dachte, Du kennst schon den Unterschied?

    Das Ganze nutzt aber nur, wenn Du schon einen Taschenrechner programmiert hast, den Du dann "aufbohren" kannst. Zum eigentlichen Taschenrechner programmieren nutzen Dir beide erst mal nichts.



  • Wenn es Spieleentwicklung werden soll, solltest du dir (neben sfml) vlt. sdl anschauen. Das ist ein bekanntes framework, in dem einige C++ Spiele geschrieben worden sind.
    Qt ist eher weniger für Spiele bekannt und geeignet, es ist aber durchaus möglich Spiele zu schreiben. Insbesondere 2D Spiele ... sie z.B. Felgo (basiert auf Qt Qml).

    Bei einem 3 Monate Udemy Kurs wirst du meiner Meinung nach ziemlich schnell an deine Grenzen kommen. Ich empfehle an dieser Stelle mal "Der C++ Programmier", wenn du ernsthafte Absichten hast, die Sprache wirklich zu lernen. Dann plan aber lieber mal 1 Jahr Konsolen Programme ein 😉



  • @Leon0402: SDL ist in C geschrieben und SFML ist in C++ entwickelt, so daß letzteres für C++ eine bessere API anbietet. 😉



  • @Th69 Das stimmt 🙂 Das sollte auch erstmal keine Aussage darüber sein, welches Framework besser zu benutzen ist, sondern eher, dass SDL etwas bekannter ist für größere Spiele (soweit ich weiß). Ich kenne beide Frameworks nicht so wirklich (mal 1-2 mal benutzt vielleicht).


Log in to reply