welche GUI für C/C++

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,
    ich bin neu hier und brauche einen Rat.


    Ich bin zur Zeit dabei mich intensiv in den Raspberry Pi einzuarbeiten. Das Ziel ist die Programmierung unter C/C++

    Als IDE für C/C++ habe ich mich für Code::Blocks entschieden. Dies funktioniert auch sehr gut. Erste Programme laufen schon.

    Nun muss ich mich noch für eine GUI-Oberfläche entscheiden. Hier stehen QT, GTK+ und wxWidgets zur Auswahl. Leider finde ich hierzu aber nur wenig Infos in den Foren. Dort geht es hauptsächlich um Phyton, Java etc. Interpretersprachen möchte ich aber aus Performancegründen nicht nehmen.

    Könnt Ihr mich hier weiterhelfen? Was nehmt Ihr? Habt Ihr Erfahrungswerte mit dem Pi und QT/GTK+/wxWidgets? Oder etwas anderem?

    Was wird normalerweise bei Linux verwendet? QT/GTK+/wxWidgets? Gibt es hier einen Schwerpunkt?

    Bin für jeden Tipp dankbar.

    im Voraus vielen Dank

    Gruss
    Ozi_68

  • Hi,
    ich hab' da einfach wxSmith (in Code::Blocks integriert) genommen ... warum sich noch was anderes antun?
    Allerdings muss ich dazu sagen, dass ich mit Benutzer-Oberflächen ähnlich viel am Hut hab' wie mit Windows :fies:
    Kann also gut sein, dass es da durchaus was Sinnvolleres gibt.

    cu,
    -ds-

  • Hallo Ozi_68,

    herzlich Willkommen in unserem Forum!


    Da scheiden sich die Geister...

    Die Frameworks, die CodeBlocks unterstützt, nämlich QT, GTK und wxWidgets solltest Du mal selber ausprobieren.

    Dazu zählen auch die unterschiedlichen Lizenzmodelle. Bei einem Framework darfst Du dies nicht, bei anderen musst Du den Quellcode weitergebenm wenn Du Anwendungen erstellt hast.

    Ich leite gerade ein Projekt, bei dem es letztlich auch um diese Frage geht, welches dieser drei Frameworks zum Einsatz kommen wird. Ein Kriterium dabei sind diese unterschiedlichen Lizenzmodelle. Bei einer kommerziellen Anwendung in der Medizintechnik, die für die Lebensverlängerung Todkranker eingesetzt wird, mag man nicht unbedingt den Quellcode herausgeben. Denn dann könnte das ja jeder duplizieren.


    Ansonsten findest Du zu allen drei Frameworks recht gute Literatur, Online-Tutorials oder auch Diverses zum Herunterladen. Persönlich habe ich mich -was C++ betrifft - mehr mit wxWidgets beschäftigt. Dafür gibt es ein recht umfangreiches Buch, das auch zum Download angeboten wird. DAs ist zwar schon ein wenig älter - aber viel Wesentliches scheint sich da auch nicht getan zu haben.


    Meiner Meinung nach solltest Du nicht auf irgendwelche Empfehlungen hier im Forum hören - sondern nach dem gehen, wie gut Du mit diesem oder jenem Framework zurecht kommst. Von den Leistungsumfängen nehmen sich diese Frameworks nicht viel - mit allen dreien kannst Du zeitgemäße GUIs erstellen.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (7. März 2016 um 21:26)


  • Ich leite gerade ein Projekt, bei dem es letztlich auch um diese Frage geht, welches dieser drei Frameworks zum Einsatz kommen wird. Ein Kriterium dabei sind diese unterschiedlichen Lizenzmodelle. Bei einer kommerziellen Anwendung in der Medizintechnik, die für die Lebensverlängerung Todkranker eingesetzt wird, mag man nicht unbedingt den Quellcode herausgeben. Denn dann könnte das ja jeder duplizieren.

    Oder - $GOTT bewahre - jemand anderes Fehler findet, welche toedlich enden. Was das fuer Konsequenzen fuer die Versicherung hat - das will sich keiner ausmalen... SCNR.


    Zur eigentlichen Frage:

    - wxWidgets ist ein Graus. Der Grund ist, dass es konzeptionell nicht ein eigenes GUI-Framework darstellt, sondern seinerseits plattform-spezifische abstrahiert. Federfuehrend ist dabei Windows, du benutzt auf Linux aber dann eh GTK https://wiki.wxwidgets.org/Compiling_and_getting_started. Wenn es also nicht um plattformunabhaengigkeit geht, und dir GTK gefaellt, benutz es besser gleich. Selbst *wenn* es um plattformunabhaengigkeit geht - benutz gleich GTK oder Qt.
    - GTK ist ok, wenn auch meines Erachtens ein bisschen altbacken dieser Tage. Und ja nicht wirklich C++...
    - Qt benutze ich beruflich. Da bin ich also sicherlich auch ein bisschen voreingenommen... ich empfinde es als ziemlich ausgereift. Eine besonderheit stellt die neue QML-Gui-Entwicklung ab Qt5 dar. Die ist zum einen angenehm zu entwickeln, da der Uebergang zwischen leicht zu prototypendem Javascript und ggf. dann doch notwendigem C++ sehr leicht ist. Ausserdem setzt es konsequent auf OpenGL ES. Animationen und visuelle Effekte, welche die Hardware des PI ausnutzen, findest du nur hier. https://www.youtube.com/watch?v=A-vBbqamNBU

    Ich wuerde also Qt empfehlen.


  • ... die für die Lebensverlängerung Todkranker eingesetzt wird, mag man nicht unbedingt den Quellcode herausgeben. Denn dann könnte das ja jeder duplizieren.
    ...


    ach ... gibt's da jetzt schon Software um unsterblich zu werden oder was :fies:
    Ne ... schon klar ... nur nicht offenlegen. Könnte ja sonst was qualitativ Hochwertiges dabei rauskommen :lol:

    Naja ... Du kannst ja vermutlich nix dafür ... aber ich hab' diese geldgeilen Krümelkacker in den "Super-Software-Schmieden", die am Ende nur Mehrkosten ohne Mehrnutzen produzieren, echt gefressen :fies:

    cu,
    -ds-

  • Noch ein Nachtrag zum Lizenzmodell: ich weiss nicht, was ihr da entscheidet - ist alles drei LGPL. Die gibt den Benutzern immer das Recht, die Bibliotheken auszutauschen (wieviel Sinn das macht, sei dahingestellt ) - womit man also Zugriff auf das System bekommen muss. Muss man aber - wie gesagt - bei allen drei...


  • ....Bei einer kommerziellen Anwendung in der Medizintechnik, die für die Lebensverlängerung Todkranker eingesetzt wird, mag man nicht unbedingt den Quellcode herausgeben. Denn dann könnte das ja jeder duplizieren.
    Beste Grüße
    Andreas

    und ich dachte das wird ungern gemacht weil sonst jeder sofort Fehler im Code sehen kann welches Regressansprüche zur Folge haben könnte?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Anwendungen in der Medizintechnik sind im OpenSource-Bereich, soweit ich weiß, rar gesät. Stellenweise entspricht solche Software (v.a. auch kommerziell vertriebene) noch der Bedienphilosophie aus den 80ern, in denen gern zwei oder mehr Menüleisten mit DropDown-Menüs vollgestopft sind, die wiederum ebenfalls mit Menüpunkten vollgestopft sind. Ich durfte da mal von ein paar Jahren ein Praktikum bei einem Softwarehersteller machen - Dienstanweisung war, bei jedem (Windows-)Rechner, der jene Verwaltungssoftware installiert bekam, die UAC komplett auszuschalten und die Benutzer mit Administratorrechten arbeiten zu lassen.

    Sorry für die Anekdote, aber das schlummerte schon so lange in mir, dass ich das jetzt einfach mal rauslassen musste^^.

    Zum Thema: Wenn es mit der Lizenzierung keine Probleme gibt, würde ich ehrlichgesagt wohl schauen, wo es sonst bei dem einen oder anderen Framework für mögliche Probleme geben könnte. Ist irgendwann mal eine Windows-Portierung geplant? Spielen diverse Flexibilitätsfeatures eine Rolle?

    Ich für meinen Teil bin da auch ein wenig voreingenommen und nutze Qt - der GUI-Builder (Qt Creator) ist traumhaft und die Python-Anbindung (ich nutze nur Python) sehr einfach; auch die Dokumentation ist ausreichend ausführlich. Mit GTK bin ich irgendwie nie richtig warm geworden, genausowenig mit WxWidgets... Aber im Endeffekt möchte ich dann doch Andreas zustimmen: Wenn für dich die Lizenzfrage geklärt ist, musst du selbst ausprobieren, was dir am Besten liegt...

    Einmal editiert, zuletzt von Astorek86 (8. März 2016 um 13:36)

  • Hallo Leute,
    vielen Dank für Eure Ratschläge und Eure Tipps.

    Ich habe mir inzwischen sehr viele Webseiten mit den verschiedenen Möglichkeiten (QT, GTK+, wxWidgets) angesehen. Jede der Möglichkeiten hat Vor- und Nachteile. Letztendlich habe ich mich nun für QT entschieden.

    Der ausschlaggebende Grund dafür war, dass QT auf ALLEN Platformen verfügbar ist. D.h. Windows, Linux, OSX, iOS, Android, Raspi etc.

    GTK+ und wxWidgets sind zwar auch verbreitet, aber nicht so sehr wie QT.

    QT ist dafür ein mächtiger Brocken, den es jetzt zu erkunden gilt. Arbeite seit vielen Jahren mit LabWindows von National Instrument und sehe hier große Ähnlichkeiten. Hoffe, dass ich dadurch leichter reinkomme.

    Der nächste große Schritt ist nun QT auf dem Pi zu installieren. Bin auch gespannt, welche Performance der PI auf C/C++ hat.

    gebe Rückmeldung sobald ich hier mehr weis.

    danke für Eure Hilfe

    gruss
    ozi_68

  • warum nicht geany?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Ich bin zur Zeit dabei mich intensiv in den Raspberry Pi einzuarbeiten. Das Ziel ist die Programmierung unter C/C++

    Als IDE für C/C++ habe ich mich für Code::Blocks entschieden. Dies funktioniert auch sehr gut. Erste Programme laufen schon.
    Nun muss ich mich noch für eine GUI-Oberfläche entscheiden.


    jar: Was hat denn eine IDE/Editor mit einem GUI-Toolkit zu tun?

    ich bin ja kein Softie, für mich heisst

    GUI immer noch Graphical User Interface und geany scheint mir das zu sein im Gegensatz zur CMD

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Na wie du selbst doch zitierst - eine IDE hat er schon. Und danach wurde ja auch noch ein bisschen diskutiert, der TE hat sich fuer was entschieden.. woher jetzt die Postinglust kam erschliesst sich mir nicht ;)


  • .. woher jetzt die Postinglust kam erschliesst sich mir nicht ;)

    weil ich lernen möchte?
    warum nicht geany als IDE ist doch eine legitime Frage dachte ich, wenn es Gründe dagegen gibt würde ich sie gerne kennen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi Jar,

    Geany ist ein tolles Tool zum Programmieren in vielen Programmiersprachen.

    Wenn man allerdings mit anderen graphischen Werkzeugen GUIs für Anwendungen "gezeichnet" hat, dann ist die Frage, wie sinnvoll es ist, mit Geany weiterzuarbeiten. Für reinen Code geht das - wenn dann aber doch noch Anpassungen der GUI erforderlich sind, musst Du ständig zwischen den Welten wechseln.

    In Icon habe ich es so gemacht, dass ich das Programm zum Erstellen von Oberflächen als Kommando in Geany eingetragen habe.

    Das Gleiche sollte aber in allen anderen Programmiersprachen auch funktionieren.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (18. März 2016 um 21:51)


  • weil ich lernen möchte?
    warum nicht geany als IDE ist doch eine legitime Frage dachte ich, wenn es Gründe dagegen gibt würde ich sie gerne kennen.

    Natuerlich ist es das. Nur hat niemand nach einer IDE gefragt. Sondern nach einer Bibliothek (oder Rahmenwerk eher), Programme mit einer grafischen Oberflaeche auszustatten. Nicht nach Programmierumgebungen, die auch eine grafische Oberflaeche *haben*, wie Geany oder Emacs oder Visual Studio oder....

    Genauso kann man auch diskutieren warum C++ und nicht Python, warum uC A und nicht B, warum MosFET statt Darlington-Transistor - aber das man das jetzt alles in einem Thread durchdekliniert waere doch etwas unpraktisch, oder?


  • ....Nur hat niemand nach einer IDE gefragt. Sondern nach einer Bibliothek (oder Rahmenwerk eher), Programme mit einer grafischen Oberflaeche auszustatten. Nicht nach Programmierumgebungen, die auch eine grafische Oberflaeche *haben*, wie Geany oder Emacs oder Visual Studio oder....

    kann man das etwa falsch verstehen?


    Ich bin zur Zeit dabei mich intensiv in den Raspberry Pi einzuarbeiten. Das Ziel ist die Programmierung unter C/C++

    ....Nun muss ich mich noch für eine GUI-Oberfläche entscheiden.
    Gruss
    Ozi_68

    oder ist JEDEM sofort klar das er keine GUI zur Programmierung sucht sondern GUI programmieren will?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!