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



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

    die Grafik mit OpenGL erstellt

    ... für f*** simple GUI. Du bist im falschen Thread glaub' ich.


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


  • Mal so am Rande finde ich OpenGL bzw zukünftig Vulkan für eine GUI eine ausgezeichnete Wahl. Es ist hardwarebeschleunigt, da kaum noch eine Plattform ohne GPU auf dem Markt kommt und die GUI sieht überall von Grund auf gleich aus. Die 3D Software Blender z.B. macht die gesamten GUI schon von Anfang an per OpenGL, also schon seit der ersten Version auf der SGI Workstation. Muss so im Jahr 1994 gewesen sein.

    Ich persönlich mache gerade meine erste Schritte mit Qt unter VisualStudio2019 Community Edition und komme sehr gut damit klar. Alles was ich wollte habe ich bis jetzt allein hinbekommen, die Referenz und die Communitybeiträge auf Stackoverflow etc. helfen einen enorm schnell zum Ziel zu kommen. Ob da nun unter der Haube noch der MOC mitspielt oder nicht, ist mir egal. Das System und die Libs zum entwickeln müssen einfach funktionieren und bei Hilfe will ich gerne auf eine große Gemeinschaft zurückgreifen können. All das scheint mir Qt zu bieten. Und mit ein bisschen Glück kann ich später vielleicht sogar mein Projekt unter Linux oder MacOS kompilieren, da auch meine Drittanbieter-Libs crossplattform sind.



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

    @john-0 Bisher habe ich die Grafik mit OpenGL erstellt und dann in eine Textur gerendert und anschließend als png gespeichert. Das Problem dabei ist, dass die Texturgrösse begrenzt ist. Und auch, dass es Recht umständlich ist Antialiasing zu benutzen.

    Aus Vektordaten ein PNG machen hälst Du für ein sinnvolles Vorgehen? Ich kenne weder Qt noch Windows (außer UNIX habe ich nur Macs genutzt), aber das ist ziemlich eindeutig nicht sinnvoll. Du musst sehen, dass Du ein sinnvolles Vektorformat aus Deinem Programm heraus bekommst.



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

    Im Titel steht auch Grafik zum Drucken. Also nicht Bildschirmauflösung sondern beliebige Auflösung und Speichern in Datei anstatt Bildschirmdarstellung. Nicht die Gui.

    Habe ich wirklich überlesen. Sorry.

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

    die GUI sieht überall von Grund auf gleich aus.

    Ist das erstrebenswert? Mir zumindest ist es lieber wenn Anwendung XY sich möglichst nativer Steuerelemente bedient und sich auch sonst an den Stil meines Desktops hält. Egal, wie XY auf anderen Systemen aussehen mag.



  • Tja das ist wohl eine Sache des persönlichen Geschmacks. Ich fände es toll wenn das OS nicht das Aussehen der Apps so stark mitbestimmt, sondern der Entwickler. Die App sollte Infos wie DPI, Bildschirmgröße, Hell Dunkel, Behindertengerecht etc. vom OS mitbekommen und dann selbst entscheiden wie sie das am besten umsetzt. So kommt man immer weiter weg von einer OS-Abhängigkeit und ein User wäre es wirklich irgendwann egal was für ein OS er unter der Haube hat. Wichtig ist dann nur noch ob es die App für mein System gibt oder nicht.



  • @chris4cpp Das driftet eigentlich schon fast zu stark vom Thema ab, aber ein letzter Gedanke: Wenn ich N Anwendungen habe die ich recht regelmäßig benutze und jede der N meint ihr eigenes Süppchen kochen zu müssen (= Deine Meinung) vs. N Anwendungen die versuchen sich an die Konventionen meines Desktops zu halten ... ich nehme zweiteres und bin damit sicher nicht alleine.


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


  • @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.



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

    Ich persönlich mache gerade meine erste Schritte mit Qt unter VisualStudio2019 Community Edition und komme sehr gut damit klar. Alles was ich wollte habe ich bis jetzt allein hinbekommen, die Referenz und die Communitybeiträge auf Stackoverflow etc. helfen einen enorm schnell zum Ziel zu kommen. Ob da nun unter der Haube noch der MOC mitspielt oder nicht, ist mir egal.

    Die ersten Schritte sind nicht unbedingt aussagekräftig... Ich würde sagen, Qt dürfte so ziemlich das beste sein, ist aber immer noch relativ "schlecht" (will jetzt nicht unbedingt scheiße sagen). Ich arbeite aber auch schon so lange mit Qt, dass ich von den anderen Toolkits kaum noch eine Ahnung habe.
    Wenn man sehr intensiv mit Qt arbeitet, wird man halt auch sehr viele Probleme finden. Bugs, Designfehler (Softwaredesign mein ich) usw...


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


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


Anmelden zum Antworten