Krautkanal.com

Veröffentlicht am 2016-06-18 14:27:51 in /prog/

/prog/ 8983: eigenes GUI mittels GLFW oder electron?

thehacker Avatar
thehacker:#8983

Hallo Bernds,

Bernd muss sich entscheiden ein spezielles GUI entweder mittels GLFW oder electron umzusetzen und wünscht sich die Meinungen und Anregungen anderer Bernds.

Die GUI soll im Grunde aus einer Arbeitsfläche bestehen, auf denen verschiedene Widgets mit Kanten verbunden werden können. So wie im Bild, wobei die Menüs ggf. auch anders umgesetzt werden können.

Die normalen GUI-Systeme sowie SDL/SFML/Allegro fallen aus diversen Gründen schon weg, so dass Bernd sich auf diese beiden Optionen eingegrenzt hat.
Folgende Vor/Nachteile hat er durch Tests/Dokumentation/vorherigen Einsatz in Erfahrung gebracht:

electron:
+ man bekombt viel mitgeliefert, z.B. funktionierende GUI-Elemente
+ dadurch, dass es ein Browser ist, kommt Bernd in den Genuss weiterer fertiger Bauteile, wie z.B. Leaflet.js, für das Anzeigen von Karten
+ einfach, ein Pluginsystem für z.B. weitere Widgets zu entwerfen
+ keine lange Kompilierzeiten
- hoher Speicherüberkopf, sowohl Hauptspeicher als auch auf der Festplatte
- damit verbunden, vergleichsweise lange Startzeit, vor allem für so einfachere Tools wie Texteditoren
- auf viele Schnittstellen nicht so einfach zuzugreifen/krebsige Nodebindings

GLFW:
+ läuft auf wesentlich schwachbrüstigeren PCs
+ wesentlich besseres Nutzen/Platz-Verhältnis für kleinere Programme
+ ggf. einfacher, die Widgets zu platzieren und layoutieren, da Bernd kein CSS/WebArtisan(TM) ist
+ mehr Auswahl kleiner Interpreter, die man für skriptbare Widgets einbetten und vom Hauptsystem aus Sicherheitsgründen sauber abkapseln möchte
- ALLES muss selber gezeichnet/gebaut werden, vor allem bei Komponenten wie Texteditoren/Kartenanzeiger/Chartsystemen kann das ins Gewicht fallen
- Buildsysteme/Abhängigkeiten unter C++ sind Krebs
- OpenGL scheint mit sehr viel Boilerplate-Code verbunden zu sein, wenn man nur ein paar Primitiven zeichnen möchte
-/+ Bernd ist sich nicht 100% sicher, wie viele (brauchbare) Hilfsbibliotheken es für OpenGL gibt z.B. zum Laden von Schriften

Was meint Bernd? Zu was würde er mir aufgrund der einen oder anderen Erfahrung raten?

markolschesky Avatar
markolschesky:#8985

>>8983
electron:
- die Kanten zu zeichnen erfordert scheinbar ein hässliches Gemisch aus SVG und HMTL

armcivor Avatar
armcivor:#8986

> normale GUI-System aufzählen
> Qt nicht dabei

Bist du seriös?
Die Anforderungen hören sich nach QGraphicsView an.

yigitpinarbasi Avatar
yigitpinarbasi:#8989

>>8986
Naja, Qt wäre ja übor gottgleich bei normalen GUIs, aber bei meinem Ding, wo das gesamte Fenster eine eigene GUI ist, sehe ich da eigentlich nur Nachteile, zumindest mit QGraphicsView:
- Szenengraph: Vermutlich persönlicher Geschmack, aber dieses permanente übereinanderlegen von Zeichenobjekten halte ich für den krebsigsten aller Zeichenansätze.
- Man kann dort scheinbar auch keine anderen Widgets reinzeichnen (siehe http://blog.qt.io/blog/2007/03/09/qgraphicsview-widgets-on-the-canvas/), so dass der ganze Vorteil des Qt Widgetsets flöten geht. Diese ganzen anderen, nichtgrafischen Helfer und QString und QGoFuckYourself will ich nicht.
- Dafür muss ich dann auch nicht ein riesiges SDK downloaden und mich mit moc und ähnlichem Krebs anfreunden.
- Am ehesten gangbar wäre vermutlich, ein eigenes Layoutelement zu implementieren, auf dem Kindeselemente frei verschiebbar und mit Pfeilen verbindbar liegen können.

An sich würde Qt Bernd schon reizen, vor allem, weil es für fast alles Widgets gibt, aber der zeitliche Aufwand scheint mir genauso groß, einfach weil das Aufsetzen und die Einarbeitungszeit so enorm riesig sind.

aadesh Avatar
aadesh:#8991

>>8989
>Man kann dort scheinbar auch keine anderen Widgets reinzeichnen
Bin mir ziemlich sicher, dass das geht. Vielleicht ging es 2007 noch nicht, als Qt4 aktuell war, aber heute ist Qt5 aktuell. Auf die Schnelle per Google gefunden: https://stackoverflow.com/questions/2985374/drawing-widgets-such-as-buttons-over-qgraphicsview

adewaleolaore Avatar
adewaleolaore:#8992

>>8991
Danke Bernd, dann sieht die Sache ggf. doch etwas anders aus.

Da muss Bernd sich noch etwas RL-Feedback einholen und dann mal schauen, ob er Qt oder Electron benutzt.

Neuste Fäden in diesem Brett: