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


  • 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!


  • HTML ist auf jeden Fall ein Lösungsansatz. Ich wüsste jetzt nicht wie ich meine Realtime Audioanwendung mit einer HTML GUI verbinden könnte, aber das geht bestimmt irgendwie. Ob ich dann die Geschwindigkeit erreichen kann um wirklich fast samplegenau visuelles Feedback in der HTML GUI zu erzeugen weiß ich nicht.



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

    Nö, ziemlich genau das meine ich schon.

    Da muss ich jetzt nochmal nachhaken... Meinst mit DAS das was ich zuerst geschrieben hatte, oder die Variante mit dem HTTP Server?



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

    Zudem dauert es so lange selbstverständliche Funktionen zu implementieren, wie Speichern, Undo und Redo, wysiwyg, usw.

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

    @Swordfish Naja in so einer OpenGL GUI Lib gäbe es ja schon alle Standard Kompenenten in einem Standard Theme Hell und Dunkel, nur kann man dies komplett ändern wenn man denn möchte. Es müsste niemand jedes Mal den Button ein Menu oder ne Combobox neu erfinden, wenn er es nicht mag.

    Deswegen habe das andere schon getan. Und wenn man sich was mit C-Bindings aussucht ist die verwendete Sprache auch ziemlich wurscht. Trotzdem gebe ich nochmal zu bedenken daß es einen Grund gibt warum es X verschiedene Window Manager gibt. Die wählt man auch wegen $Grund.



  • @Mechanics Ich meinte CEF & Co.



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

    @Swordfish Naja in so einer OpenGL GUI Lib gäbe es ja schon alle Standard Kompenenten in einem Standard Theme Hell und Dunkel, nur kann man dies komplett ändern wenn man denn möchte. Es müsste niemand jedes Mal den Button ein Menu oder ne Combobox neu erfinden, wenn er es nicht mag.

    Deswegen habe das andere schon getan. Und wenn man sich was mit C-Bindings aussucht ist die verwendete Sprache auch ziemlich wurscht. Trotzdem gebe ich nochmal zu bedenken daß es einen Grund gibt warum es X verschiedene Window Manager gibt. Die wählt man auch wegen $Grund.

    Gibt es denn da eine Lib, die per OpenGL/Vulkan zeichnet und bei der die Standard Widgets wirklich auf jeder Plattform gleich aussehen? Also ich lasse eine ComboBox zeichnen und die sieht unter Linux(Gnome, XFCE, KDE), Windows XP, 7, 10, MacOS, Android, iOS und meinetwegen BareMetal RaspPi exakt gleich aus?



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

    die Standard Widgets wirklich auf jeder Plattform gleich aussehen?

    Sag mal, wer außer Du will das? Schreibst Du Software für Dich selbst? Tu was Du willst. Hast Du Software die ein gewisses Alleinstellungsmerkmal hat? Tu was Du willst. Nein? Halte Dich an übliche Konventionen.

    Wozu willst Du ein Hundsordinäres GUI überhaupt mit OpenGL rendern?

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

    Windows XP

    Kidding, right?


Anmelden zum Antworten