Hi,
es geht hier um eine Grundsatzfrage, die mich aus der Perspektive als upstream maintainer einer Qt Anwendung beschäftigt.
Diverse Anwendungen haben auf 4k Monitoren ein Scaling Problem und z.B. Schriften werden zu klein angezeigt. Ich habe grob verstanden, warum das so ist. Trolltech selbst beschreibt das in diesem Dokument: https://doc.qt.io/qt-5/highdpi.html
Wie gesagt, durchdringe ich das Thema nicht vollständig und vielleicht bin ich da schief gewickelt. Genau deswegen frage ich ja hier.
Ich sehe es nicht ein, dass einzelne Anwendungen sich um User mit 4k Monitoren kümmern müssen und dafür extra Code, Doku und Maintainer Ressourcen aufwenden. Ist das nicht Aufgabe des Window Managers oder einer anderen Komponente des Desktop Environments, sich um solche Details zu kümmern, zumal ein DE dass dann auch global für alle Anwendungen regeln könnte?
Natürlich mag es DEs geben, die noch nicht mit 4K umgehen können und man daher für einzelne Anwendungen Workarounds verwendet. Aber diese Sonderfälle lassen wir mal Außen vor.
Danke schon mal für eure Gedanken dazu.
Christian
Scaling bei 4k Monitoren: Wer hat Verantwortung?
Scaling bei 4k Monitoren: Wer hat Verantwortung?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (backintime)
Teil des Upstream Betreuer Teams von Back In Time (backintime)
Re: Scaling bei 4k Monitoren: Wer hat Verantwortung?
Das Problem kenne ich, nicht nur bei 4k. Ich benutze dann qt5ct (extra Paket) und kann damit die gewünschte Schriftgröße für alle qt Programme einstellen.
Gruß ralli
Gruß ralli
Re: Scaling bei 4k Monitoren: Wer hat Verantwortung?
Ohne jetzt den QT-Artikel gelesen zu haben: unter Xorg ist das ein ziemliches Durcheinander, erst mit wayland wird das "reformiert". Es gibt IMHO keine zentrale Verantwortung, jedes Toolkit hat seine eigenen Lösungen und entsprechend inkonsistent ist es für User.
Quelle: ich mit meinen 2 4k Bildschirmen (seit rund 6-7 Jahren) und dem Festhalten an awesomewm (was nicht mit wayland kompatibel ist).
Quelle: ich mit meinen 2 4k Bildschirmen (seit rund 6-7 Jahren) und dem Festhalten an awesomewm (was nicht mit wayland kompatibel ist).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Scaling bei 4k Monitoren: Wer hat Verantwortung?
Nein. Der Windowmanager kümmert sich nur um die Fenstergeomerien, also Breite, Höhe und Position von (neuen) Fenstern.
Eine Anwendung weiß im allgemeinen nichts darüber, welcher Desktop läuft. Nur so ist auch gewährleistet, daß ein Qt/KDE-Programm auch unter Gnome oder sogar in einem Fenster eines primitiven Windowmanageers wie twm lauffähig ist.oder einer anderen Komponente des Desktop Environments, sich um solche Details zu kümmern
Eine Anwendung kann versuchen, mit dem Desktop zu kommunizieren und gewisse Defautls wie Font und Fontgröße abzufragen. Eine Anwendung muß aber immer auch dann funktionieren, wenn diese Abfragen fehlschlagen.
Solange die Anwendung nur einen Font braucht, könnte das global geregelt werden. Viele Anwendugnen benötigen aber mehr als einen Font bzw. eine Fontgröße. Eine Textverarbeitung braucht z.B. unterschiedliche Fontgrößen für Überschriften, normalen Text und das sprichwörtliche Kleingedruckte.zumal ein DE dass dann auch global für alle Anwendungen regeln könnte?
Gerade Qt/KDE war jahrelang nicht in der Lage, Fonts brauchbar zu skalieren, Qt konnte lange Zeit nur ganzzahlige Skalierung also Faktor 1, 2, 3.... Vor allen für High-DPI-Monitore ist aber oft eine Skalierung um 1.25 oder 1.5 viel sinnvoller.Natürlich mag es DEs geben, die noch nicht mit 4K umgehen können und man daher für einzelne Anwendungen Workarounds verwendet. Aber diese Sonderfälle lassen wir mal Außen vor.
Anwendungen müssen ebenfalls gutmütig auf andere Fonts/Fontgrößen reagieren. Leider sind aber in der Vergangenheit viele Schaltflächen nicht dynamisch programmiert wordern sondern mit fester Größe wie 200 Pixel breit und 30 Pixel hoch. Da paßt dann ein 2-fach skalierter Text gar nicht mehr rein, weil die Schaltfläche auch skalieren müßte. Eine skalierende Schaltfläche bedeutet aber, daß benachbarte GUI-Elemente abenfalls gutmütig reagieren müssen, also sich in der Position und Größe derart verändern müssen, daß das Gesamtbild der GUI stimmig bleibt, bis hin zur Skalierung der eigentlichen Fensters.
All das kann kein Desktop gewährleisten, das muß immer die Anwendung selbst regeln.
Glaub mir, ich weiß wovon ich spreche, nutze selber Qt als Programmierumgebung und habe einige zig Anwendungen auf High-DPI testen und umprogrammieren müssen. Das sogar unter Windows, das angeblich so gut mit High-DPI umgehen kann (Pustekuchen).
Re: Scaling bei 4k Monitoren: Wer hat Verantwortung?
Leider habe ich etwas mißverstanden, denn es geht ja nicht um die Font Skalierung. Gelernt habe ich, das in der GUI Programmierung grundsätzlich nicht für eine bestimmte Auflösung programmiert wird, sondern immer die native Auflösung benutzt wird. Für die Skalierung ist dann letztendlich der Anwender zuständig. Ich habe mal einen 4 K Monitor von meinem Sohn geschenkt bekommen. Die Skalierung unter den verschiedenen Linux Desktops fand ich anstrengend und schwierig, weil noch nicht ganz ausgereift. Das ist aber auch ein paar Jahre her. Aktuell habe ich einen 27 Zoll Monitor, der aber kein 4 k kann. Das brauche ich auch nicht.
Gruß ralli
Gruß ralli
Re: Scaling bei 4k Monitoren: Wer hat Verantwortung?
Doch, es geht bei der Skalierung hauptsächlich um Fonts und nebensächlich um die Größe von Symbolbildern (aka Icons).ralli hat geschrieben:29.11.2024 17:14:18Leider habe ich etwas mißverstanden, denn es geht ja nicht um die Font Skalierung.
Fonts werden zumindest in Linux noch in Pixel gemessen, ein typischer Font hat eine Höhe von 12 Pixeln. Je kleiner die Pixel werden, desto kleiner werden die Buchstaben. Stellst du einen größeren Font ein, werden Texte wieder leichter lesbar. Ähnliches gilt für Icons.
Programme sollten so programmiert sein, daß sie mit beliebiger Fenstergröße, also Anzahl Pixel, funktionieren. Die sollten also genauso gut im Fullscreen wie auch im Fenster mit nur z.B. 400*500 Pixel funktionieren. Wenn du ein Fenster also größer ziehst oder kleiner machst, dann müssen sich alle Elemente in dem Fenster neu anordnen und zwar so, daß das Gesamtbild stimmig bleibt. Natürlich kann sich dabei eine minimale Anzahl Pixel in der Breite und in der Höhe ergeben, unter die man ein Fenster nicht verkleinern kann.Gelernt habe ich, das in der GUI Programmierung grundsätzlich nicht für eine bestimmte Auflösung programmiert wird, sondern immer die native Auflösung benutzt wird.
Erlaubt man nun zusätzlich, die Fonst variabel einstellbar zu machen, muß so ein Programm nicht nur die Größenänderung durch den Benutzer sauber unterstützen sondern auch noch die Größe der Schaltflächen an den Font anpaßbar unterstützen. Das kann zu geometrischen Konflikten führen.
Nein. Der Anwender mag für das Größer- und Kleinerziehen der Fenster zuständig sein, die Skalierung der Schlatflächen kann der Anwender nur durch ändern der Fontgröße beeinflussen.Für die Skalierung ist dann letztendlich der Anwender zuständig.
Wie gesagt, die Skalierung muß die Anwendung unterstützen. GUI-Toolkits wie GTK, Qt ud KDE können den Programmierer dabei unterstützen, man kann als Programmierer aber auch jede Menge falsch machen, z.B. in dem er einer Schaltfläche (Pushbutton oder Menüeintrag) mit fester Anzahl Pixel vorgibt, so daß große Fonts nicht mehr in die Schaltflächen passen.Die Skalierung unter den verschiedenen Linux Desktops fand ich anstrengend und schwierig, weil noch nicht ganz ausgereift.
Windows sorgt bei einem Skalierungsfaktor von beispielsweise 1.5 nur dafür, daß statt 12 Pixel Fonts, 18 Pixel Fonts verwendet werden. So funktionieren GTK (Gnome) und Qt (KDE) letzten Endes auch. Wer aber Anwendungen startet, die die Skalierung nicht unterstützen, dann werden die halt mit 12 Pixel Fonts dargestellt, was eben kleine Schriften bewirkt.