GUI ÜBER C++

  • Hallo Pi´s,

    Wir entwickeln, im Team, in einem Projekt eine lokale Wetterstation auf einem RasPi.

    Meine Aufgabe hierzu ist eine GUI zu entwickeln, die mir bestimmte Ausgabewerte aus dem LXTerminal benutzerfreundlich darstellt.

    Ein Programm für die Ausgabe der Werte wurde über C++ geschrieben.

    Finals Ziel sollte sein:
    Start des PI - automatischer Start des C++ Programms - Start der GUI automatisch/ Per Klick auf ICON/ o.ä. (Hauptsächlich sollte eine Benutzerfreundliche Bedienung für den Endverbraucher gegeben sein.)

    Letztendlich meine Frage:
    Was/Wie ist die einfachste Möglichkeit eine GUI hierfür zu programmieren?
    Lässt sich das direkt auf dem PI programmieren?

    Wir sind alle absolut neu in diesem Gebiet und haben keinerlei Programmiererfahrung. Haben bis Mitte Januar Zeit für die Umsetzung.

    Eventuelle offene Fragen eurerseits versuche ich schnellstmöglich und weitestgehend zu beantworten.

  • Hallo Elite,

    herzlich Willkommen in unserem Forum!


    Letztendlich meine Frage:
    Was/Wie ist die einfachste Möglichkeit eine GUI hierfür zu programmieren?
    Lässt sich das direkt auf dem PI programmieren?


    An Eurer Stelle würde ich mal in den Paktmanager [font="Courier New"]Synaptic[/font] hineingehen und z.B. nach [font="Courier New"]GUI C++[/font] suchen. Da kommen Entwicklungsumgebungen, einige Klassenbibliotheken und einige Beipiele zum Herunterladen und Installieren.

    Schaue Dir dort mal an:
    - Anjuta
    - qt4 (insbesondere qt4-designer)
    - WxWidget

    Das Entscheidende ist eigentlich, eine Anwendung zu nutzen, mit der Ihr Eure GUI erzeugt und die Quellcode / Klassen etc. erzeugt, den/die Ihr in Eure Entwicklung einbinden könnt.


    Wir sind alle absolut neu in diesem Gebiet und haben keinerlei Programmiererfahrung. Haben bis Mitte Januar Zeit für die Umsetzung.


    Nicht gerade die beste Voraussetzung. Darf ich fragen, seit wann das Projekt bereits läuft?

    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 (14. Dezember 2015 um 12:27)

  • Hi Andreas,

    Danke für deine Antwort.

    Das Projekt läuft bereits seit etwa einem Jahr. Daher kommt auch die bereits erledigten Dinge:
    #Lösung RaspberryPi,
    #Programmierarbeiten,
    #Sensoren,
    #Funktionierende Wetterstation (diverse Sensoren) von Warema,
    3
    Mein Team ist jetzt seit 30.11 mit dem Thema betreut. Die wesentliche Arbeit bis jetzt war die Durchforstung der schlechtesten Dokumentation die ich je gesehen habe.

    Momentan sind wir aber noch beschäftigt das Programm C++ via Ellipse auf dem Raspi zu starten.

    Hoffe wir haben dieses Problem bald gelöst. Bis jetzt stehen wir noch im tiefsten dunklen Urwald.

    Sollte es funktionieren werde ich versuchen dieses synaptic zu installieren.
    Wir würden auch gerne Daten von einer Website via html integrieren. Geht das?

  • Ich wuerde Abstand von C++ nehmen, und stattdessen gleich eine Browserbasierte Loesung entwickeln. C++ ist kompliziert, gerade fuer Programmieranfaenger, und HTML/Javascript-basierte GUIs um ein vielfaches einfacher zu bauen, und die Anforderung, HTML einzubinden, ist dann auch trivial.

  • Hallo Elite,

    es geht alles. Ich bin nur skeptisch, so wie Ihr Euch da momentan anstellt.

    C++ ist kein Programm, sondern eine Programmiersprache. Und die braucht Ihr auf dem Raspberry Pi nicht zum Laufen zu bringen. Sie befindet sich bereits auf dem Raspberry Pi.

    Ihr müsst eigentlich nur den Quellcode auf den Raspberry Pi bringen - und dann mal den Compiler starten, um zu sehen, ob Euer Programm überhaupt irgendwas macht.

    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.

  • Hallo Andreas,

    Ja war wohl alles etwas verdreht formuliert.

    Wir sollten versuchen alles über c++ zu handeln, da es bereits einiges an Programmierung für das System "Wetterstation" in C++ erstellt wurde.

    Mit welchem vorinstalliertem Programm können wir denn C++ programmieren?

    Anstellen tun wir uns derweilen, da wir Eclipse zum laufen bekommen aber die Anwendung für C++ nicht zum laufen. Stürzt dann immer ab.

  • Andreas hat sich da etwas missversteandlich ausgedrueckt - C++ wird mit einem dazugehoerigen compiler uebersetzt, und der ist meistens schon vorinstalliert. Unter Linux dieser Tage ueblicherweise der GCC. Worin man dann den Quellcode bearbeitet, und wie man das Projekt verwaltet, sprich: welche Sourcen enthaelt es, wie werden die uebersetzt usw - ist davon unabhaengig. Ich benutze einen Texteditor und CMAKE, andere benutzen "normale" Makefiles und Geany, und mit Eclipse kann man das auch machen. Wenn da zB schon Projektdateien vorhanden sind, dann ist das vielleicht einfacher. Ich wuerde es meiden wie der Teufel das Weihwasser, weil Eclipse gross, langsame und kompliziert ist - aber das ist Geschmackssache und hilft der Diskussion nicht weiter.

    Den letzten Satz verstehe ich nicht. Was ist "die Anwendung fuer C++"? Ist es die in C++ geschriebene Wetterstations-Anwendung, die abstuerzt? Oder das C++-Plugin fuer Eclipse?

  • Hallo,

    Zitat

    Wir sind alle absolut neu in diesem Gebiet und haben keinerlei Programmiererfahrung. Haben bis Mitte Januar Zeit für die Umsetzung.


    Ohne euch demotivieren zu wollen - das wird nicht funktionieren (davon ausgehend, dass Januar 2016 gemeint ist).


    Wenn du kein C++ kannst und die nicht mit Objektorientierung auskennst, dass wirst du keine GUI z.B. mit Qt5 in C++ hinbekommen, weil dir sämtliche Grundlagen fehlen, um überhaupt zu verstehen, was da läuft und wie das läuft.

    Dann denke ich ist der von __deets__ genannten Ansatz, die GUI web-basiert via HTML darzustellen, deutlich erfolgsversprechender.

    Gruß, noisefloor

  • Hi,

    Also ich versuch das alles noch etwas besser zu definieren.

    Wir haben einen Raspi bekommen, auf diesem sind zwei Sensoren angebracht (Luftdruck, Luftfeuchte).
    Wir haben ein C++ Programm, welches die digitalen werte der beiden Sensoren ausgibt. Diese beiden Werte möchte ich mir über einen direkte GUI anzeigen lassen.

    Über Eclipse (haben wir geschafft auf dem PI zu installieren) benötigen wir nun einen c++ Compiler.
    Mittlerweile konnten wir das C++ Programm öffnen. (es hat jedoch einige Fehler in der Datei)

    Wie würde das denn über eine html GUI funktionieren?

  • Hallo,

    Zitat

    Wie würde das denn über eine html GUI funktionieren?


    Klar. Ihr solltet das Programm so wie so 2-teilen:
    1. Auslesen der Daten und ggf. Aufbereitung
    2. Ausgabe (GUI, Webseite)

    _Müsst_ ihr eigentlich C++ nutzen? Für so (einfache) Aufgaben ist Python eigentlich auf dem Pi prädestiniert. Gerade für Anfänger. Geht natürlich auch mit C++, ist aber ziemlich sicher aufwendiger.

    Gruß, noisefloor

  • Hallo Elite,

    wie schon gesagt, auf dem Standard-Betriebssystem Raspbian befindet sich ein vollwertiger Compiler für die Programmiersprache C++.

    Diesen könnt Ihr über die Konsole über [font="Courier New"]gcc[/font] aufrufen - Ihr könnt das aber sicherlich auch in Eclipse konfigurieren.

    Wenn Ihr eh nicht programmieren könnt, dann ist die Frage, ob Ihr von Eurem C++-Code ausgehend zur Lösung gelangen wollt.
    Als Alternative bliebe nur auf eine leichter erlernbare Programmiersprache umzusteigen.

    Ich bringe hier eine andere Programmiersprache ins Spiel: Processing
    Diese Programmiersprache ist an C++ angelehnt und ermöglicht es relativ simpel, Benutzeroberflächen, wie sie Euch wahrscheinlich vorschwebt, zu erzeugen.

    Man kann die gefürchteten Klassenbibliotheken einzsetzen - es ist aber auch möglich, gleichwertig aussehende GUIs ohne deren Nutzung zu erzeugen.

    Wahrscheinlich wäre das die einzige Lösung, die Ihr bis Mitte Januar (ggf. mit Unterstützung aus dem Forum) selber hinbekommen könnt.

    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 (14. Dezember 2015 um 20:13)

  • Andreas die Sprache Processing ist nicht an C++ angelehnt, sondern eine "gefuerchtete" Klassenbibliothek plus eigene IDE, und das ist alles einfach nur Java. Nicht angelehnt, sondern exakt das. Ich finde das durchaus ganz gelungen, und fuer GUI-Entwicklung sicher leichter als C++ - aber auch da ist die Einbindung von HTML schwierig.

    Elite: das klingt alles sehr komisch. Verzeih wenn ich da etwas direkt bin - aber das ist schon wieder alles so seltsam beschrieben, dass man sich die kaum noch vorhandenen Haare raufen moechte. Was heisst denn "wir koennen das C++-Programm oeffnen" - koennt ihr das ausfuehren, oder meinst du den Quellcode des Programms? Und was fuer Fehler - wenn ihr nicht compilieren koennt, woher wisst ihr dann, was da fuer Fehler drin sind?!?!?

    Fuer den hier skizzierten Anwendungsfall - zwei Sensoren, deren Daten im Minutenbereich erhoben werden koennen, bestenfalls Sekunden (wenn sich die Temperatur der Atmosphaere in Sekunden signifikant erhoeht, dann wandelt sie die Sonne gerade zum roten Riesen - da braucht's keine Wetterstation mehr...) ist Python mehr als ausreichend, und fuer absolute Programmieranfanger um *GROESSENORDNUNGEN* einfacher, als das mit C++ zu probieren.

    Wie waere es, wenn du mal die konkreten Sensoren benennst? Dann findet sich hier im Forum sicherlich dutzendfach Code, mit dem man die ansprechen kann - und der gute meigrafd, der hier sehr prominent ist, hat Unmengen von Beispielcode, mit dem zB auch Daten aus Temperatursensoren im Browser visualisiert werden: Suche Programmierer. Datenbank auslesen und visualisieren per Highcharts.

Jetzt mitmachen!

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