Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?



  • Soweit ich weiß gibt es die GUI von Blender leider nicht als extra Lib.

    @Mechanics Ja, das kann ich mir gut vorstellen. Ich war nur begeistert weil ich so gut vorankomme als Anfänger. Sicher werde ich auch noch fluchen wenn mein Programm komplexer wird oder ich ein Widget anpassen will. Auf eine Sache bin ich schon gestoßen. Das QDial funktioniert total umständlich und nicht wie gewohnt. Man muss eine Kreisbewegung um den Knopf machen um die Werte einzustellen. Ich kenne z.B. von Software Synthesizern das nur so, dass eine vertikal Bewegung mit der Maus die Werte ändert und nicht dass man da ein halbes Telespiel daraus macht. 😂 Aber das ist nun wirklich genug Offtopic dazu.



  • Das Rendering-Backend für eine GUI Library ist nicht wirklich das grosse Problem. Da kann man OpenGL nehmen oder Direct3D oder Vulkan, im Prinzip ganz egal. Speziell weil diese Schicht relativ dünn und schmal ist. Kann also auch ruhig auf jedem OS unterschiedlich sein.

    Bloss hat man damit noch keine GUI Library. Weil man will ja die ganzen Widgets nicht selbst implementieren. Und so Dinge wie Data-Grids und List-Views sind nicht gerade trivial zu implementieren. Und dann kommt natürlich noch dazu dass man angenehm damit arbeiten können möchte, d.h. die ganzen Layout-Container, Data-Binding etc. muss auch noch jemand implementieren.

    Und das zweite Problem ist, wie ja glaube ich schon erwähnt wurde, dass das Zeug dann nicht so aussieht wie die Widgets vom OS. Das ist OK für Anwendungen von denen man erwartet bzw. wo man zumindest akzeptiert dass sie eine eigene "Skin" haben, aber für klassische Büroanwendungen ist es ... doof.



  • Bei einer OpenGL GUI Library müsste einmal alles wirklich selbst implementiert sein, jedes Widget was man sich so vorstellen kann. Das muss eine Menge Arbeit sein, klar. Aber dann hat man was, was völlig unabhängig von Windows, MacOS, Linux, Android, RiPI oder sonst was ist. Man wäre endlich frei von einer Plattform in Punkto GUI.



  • Könnt man nicht eine fertige GUI wie Qt einfach für die Widget's verwenden?
    Oder besser Ausgedrückt das OpenGL fenster in einem Widget in der Fertigen GUI öffnen ICh dachte eigentlich auch immer das Vulkan nur für Graphiken ist.



  • @chris4cpp Das macht Qt im Endeffekt auch. Mehr oder weniger. Die benutzen zum Teil native Funktionen, um die Widgets zu zeichnen, damit z.B. Windows Themes greifen. Aber ansonsten haben sie die Widgets komplett selber implementiert. Und die haben auch ein OpenGl rendering backend (wobei mich das bisher gar nicht interessiert hat).

    @Abe ich versteh weder den ersten, noch den zweiten Satz so recht 😉



  • Das Qt selbst zeichnet und sich dafür als Vorlage aber die OS Widgets nimmt habe ich auch schon mal gelesen. Wäre toll wenn sie noch was komplett eigenes hätten. Wie schon gesagt, ich finde das mit Blender geil. Egal wo ich es je starten werden, es wird 100% so aussehen und sich verhalten wie immer. Ob es die gleichen Widgets nutzt wie mein Office ist mir nicht wichtig, das könnte von mir auch eine komplett eigene perfekt angepasste Widget-Reihe haben. Webseiten sehen auch meist unterschiedlich aus und haben verschiedene usability, das stört mich auch nicht. Auch Betriebssysteme ändern über die Jahre immer mal wieder ihr Aussehen.

    Aber das ist wohl wie bei vielen Sachen im Leben eine Frage des persönlichen Geschmacks.


  • Administrator

    @chris4cpp Ich würde mal wagen zu behaupten, dass es nicht nur Geschmack ist. Wenn man sich nur schon mal überlegt, wie viele Anwender ein Programm über mehrere unterschiedliche Systeme verwenden, im Gegensatz zu wie vielen Anwendern ein System mit mehreren unterschiedlichen Programmen haben.

    Meine Erfahrung bisher ist, dass die normalen Anwender sehr froh sind, wenn die Programme eine ähnliche graphische Sprache haben. Sie finden sich viel schneller in einem Programm zurecht, worin die Widgets ähnlich aussehen und sich ähnlich verhalten.

    Da die grossen UI Libraries nunmal dafür gemacht sind, Anwendungen für die grosse Masse zu produzieren, probieren sie sich an die native Widgets anzupassen. Das ist ja auch immer wieder ein Kritikpunkt an GTK+ unter Windows. Und Blender ist eben gerade nicht für die grosse Masse gedacht. Allerdings ist Blender ein schönes Beispiel, dass genau auch dieses Problem hat oder hatte. Das UI vor 2.80 war ja alles andere als Einsteiger freundlich, weil es sich nicht an das normale Verhalten in anderen Programmen orientierte. Hier hat Blender endlich nachgegeben und sich angepasst und dafür nun viel Lob bekommen.


    Übrigens, was ist mit HTML/CSS/JS als GUI-Framework? Ich persönlich finde das noch eine interessante Alternative. Entweder über Electron, lokaler HTTP Server und dem installierten Browser oder über eine Mini-Anwendung mit integriertem Browser (z.B. QtWebEngine). Es gibt so viele Tools und Frameworks in der Web-Entwicklung, man kann damit sehr schnell sehr gute UIs erstellen.

    Das gilt auch fürs Drucken. CSS unterstützt verschiedene Eigenschaften spezifisch fürs Drucken.



  • Na auch den normalen Anwender könnte man mit einer OpenGL GUI abholen. Er müsste sich einmal an deren Standard Widgets gewöhnen und egal welches OS er in Zukunft haben wird, oder ob ein OS sich mal wieder entscheidet seine Oberfläche umzubauen, die OpenGL GUI bleibt erhalten, wenn man es will. Es muss ja nicht jeder dann seine eigenen Widgets für ein Office Paket zaubern, sondern man könnte auf einen Standard Satz zurück greifen, meinetwegen dann nach Jahreszahlen benannt. Vom OS bekommt man dann nur noch DPI und Dunkel oder Hell mit, der User kann dann das Widget Set nehmen welches er gewöhnt ist. Ja selbstverständlich müssten sich die User einmal umgewöhnen. Aber seien wir mal ehrlich, einen Slider oder eine Editbox sieht doch wirklich in allen GUI Frameworks extrem ähnlich aus und funktionieren auch gleich.
    Ich würde in so einee OpenGL GUI eine Befreiung von der Betriebssystemebene sehen.


  • Administrator

    @chris4cpp Gut, viel Glück die Betriebsystemhersteller und Desktopumgebungen auf den Pfad zu bringen. Das ist leider etwas Wunschdenken. Die Realität sieht völlig anders aus und daran wird sich nichts so schnell ändern. Sieht man schon nur im ewigen Krieg zwischen Gnome und KDE unter Linux.

    Eine GUI entwickelt man nicht für sich sondern für den Anwender. Wenn der sich an Windows Widgets gewöhnt ist und Windows Widgets erwartet, liefert man auch Windows Widgets.



  • @Dravere sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:

    Da die grossen UI Libraries nunmal dafür gemacht sind, Anwendungen für die grosse Masse zu produzieren, probieren sie sich an die native Widgets anzupassen. Das ist ja auch immer wieder ein Kritikpunkt an GTK+ unter Windows.

    Das ist auch der Grund weshalb Qt unter UNIX/Linux nicht so beliebt ist, bis zum Gnome3 Debakel war Gnome2 mit ca. 70% am weitesten verbreitet. Qt sieht nach Windows aus, und ist wohl deshalb unter Windows Umsteigern so beliebt. Wer von früher UNIX kennt, empfindet das eher als Störfaktor. Motif und dann später Motif/CDE bzw. SGIs Motif haben doch eine andere Bedienphilosophie als Windows. Gimp und daraus resultierend Gtk+ orientieren sich eher am Motif Look&Feel als an Windows. Gnome wurde auch von den kommerziellen UNIX-Anbietern als Nachfolger von CDE mitgeliefert. Trolltech (Qt Erstbesitzer) hat sich analog zur Opengroup (Motif Hersteller) ebenfalls in den Fuß geschossen, weil durch die kommerzielle Lizenz für Qt es für viele Projekte nicht in Frage kam. Wenn ich noch die Preise noch richtig im Kopf habe, war es teurer als Motif + GUI Designer.

    Nachtrag:
    Was hier chris4cpp beschreibt hört sich für mich sehr stark nach dem Berlin/Fresco Projekt an, das einmal als Nachfolger von X11 angedacht war. Keine Ahnung ob sich davon noch irgend etwas im Netz findet, aber eine Suche sollte sich lohnen. Nein, Wayland kommt dem nicht nahe.



  • @chris4cpp Aber was willst du konkret? Willst du irgendwelche Widgets, die überhaupt nicht nach Standard ausschauen? Qt kann man über Stylesheets stylen, damit kann man schon recht viel erreichen. Und der gleiche Style sollte dann unter allen Betriebssystemen gleich aussehen (hat überhaupt nicht gut funktioniert, als wir noch Linux unterstützt hatten, ist aber schon Jahre her).



  • Ich persönlich will da gar nichts in der Richtung starten. Das sind einfach nur Gedankenspielerei. Natürlich werde ich die Bigplayer nicht dazu bringen mein Hirngespinst von einer OpenGL Standard GUI anzunehmen. Microsoft + Office bestimmen was auf dem Desktop läuft und alles andere ist Nische.

    Es ist einfach mein Utopia einer GUI. Ein Ding was überall läuft und mit jeder Programmiersprache genutzt werden kann. Der Traum von Freiheit, der allen OS und unter Linux WindowManagern ein einheitliches Look und Feel verpasst.



  • @chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:

    Es ist einfach mein Utopia einer GUI

    Ist deine Utopie nicht uralt? Z.B das 20 Jahre alte Java-swing macht das doch so. Hab jetzt aber auch nicht alles gelesen.



  • Meine Utopie GUI wäre aber nicht auf Java beschränkt.



  • Naja dann sind wir wieder bei HTML5. Da gibt's etliche Engines die man mit den verschiedensten Sprachen nutzen kann mit denen man schöne HTML5 GUIs machen kann. Also mit CSS&Co für Layout, JS für die Verdrahtung, HTML für das DOM und beliebiger drangeknoteter Sprache für die Application-Logic.



  • @hustbaer sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:

    und beliebiger drangeknoteter Sprache für die Application-Logic.

    Wie meinst du das? Ja, man kann z.B. CEF integrieren und mit dem JS Code in der Seite interagieren, machen wir z.B. auch. Aber das ist schon ziemlich umständlich, das seh ich jetzt nicht als GUI Framework. Oder gibts hier irgendwelche Frameworks, die das in irgendeiner Form stark vereinfachen würden?


  • Administrator

    @Mechanics sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:

    @hustbaer sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:

    und beliebiger drangeknoteter Sprache für die Application-Logic.

    Wie meinst du das? Ja, man kann z.B. CEF integrieren und mit dem JS Code in der Seite interagieren, machen wir z.B. auch. Aber das ist schon ziemlich umständlich, das seh ich jetzt nicht als GUI Framework. Oder gibts hier irgendwelche Frameworks, die das in irgendeiner Form stark vereinfachen würden?

    Naja, gibt eigentlich zwei Möglichkeiten, die so langsam fast alles erlauben. Du kannst einen HTTP Server erstellen, womit die Seite lokal kommuniziert. Es gibt kaum eine Sprache, welche so etwas nicht unterstützt. Das andere was du machen könntest, sind WebAssemblies verwenden. Das unterstützen ja auch immer wie mehr Sprachen.



  • Klar, man kann einen HTTP Server aufmachen. Sowas hatten wir auch schon vor 15 Jahren. Ist mittlerweile natürlich viel praktikabler.
    Aber das ist immer noch sehr viel umständlicher, als ein GUI Framework. Grad so Sachen, wie schnell mal eine Tabelle oder so mit Databinding und Master/Child darstellen, mit Aktionen verknüpfen usw. geht mit einem GUI Framework in der gleichen Sprache recht schnell. Wenn man das jetzt sauber trennen und eine HTML GUI mit HTTP Server dafür machen will, ist es aus meiner Sicht sehr viel mehr Aufwand.



  • @Mechanics Nö, ziemlich genau das meine ich schon. Je nach Wrapper ist das auch gar nicht sehr umständlich. Umständlicher als man es sich wünscht, ja, aber in C# z.B. geht es eigentlich relativ leicht. Data-Binding wie in WCF hat man natürlich nicht.

    Ist aber allgemein so irgendwie. Etwas plattformunabhängiges noch dazu sprachübergreifend an alle möglichen Sprachen dranzuknoten, ... da kommt immer irgendwie was umständliches raus.


  • Gesperrt

    Dieser Beitrag wurde gelöscht!

Anmelden zum Antworten