Hallo,
im Betriebssystem Windows können Menschen mit einer Sehbehinderung in „Einstellungen“ → „Erleichterte Bedienung“ → „Anzeige“ bei „Text vergrößern“ die Schrift des Betriebssystems auf 125% vergrößern. Diese Änderung übernimmt mein Python Qt-Programm nicht.
Anmerkung:
Bei Java Swing kann es erreicht werden in dem ein bestimmter Javacode implementiert wird. Bei JavaFX funktioniert die Übernahme ohne extra Javacode.
Frage:
Was muß ich tun damit solch eine Änderung in mein Python-Qt-Programm übernommen wird?
Größe der Schrift im Betriebssystem ins Python Qt-Programm übernehmen
-
- User
- Beiträge: 90
- Registriert: Dienstag 19. Mai 2020, 19:17
- Wohnort: Dußlingen
- Kontaktdaten:
-
- User
- Beiträge: 90
- Registriert: Dienstag 19. Mai 2020, 19:17
- Wohnort: Dußlingen
- Kontaktdaten:
Hallo,
von Qt habe ich folgende Antwort bekommen:
Ich als Python-Neuling verstehe die Antwort nur halb.
Kann Sie mir jemand bitte erklären?
von Qt habe ich folgende Antwort bekommen:
„If PySide was installed on the system (the case of some Linux distributions) that respect the global setting, but in your case, PySide will be installed on a Python environment that use the Qt libs from within the package, hence the system settings should not interact with the package.
The only solution is to do this code wise:
Code: Alles auswählen
app = QApplication()
w = QPushButton("testing button")
w.show()
# Get the from the Application
font = app.font()
# Set 1.5x the current size
font.setPointSize(font.pointSize() * 1.5
# apply the new size to the app
app.setFont(font)
sys.exit(app.exec_())
Kann Sie mir jemand bitte erklären?
Du hast pyside selbst installiert, und damit die Integration mit dem System verloren. Der gezeigte Code vergroessert die Schrift einfach nur um 50% gegenueber der Default-Einstellung. Das ist IMHO nicht wirklich eine Antwort auf die Frage, weil es ja nicht automatisch funktioniert. Aber das ist, was sie dir schreiben.
-
- User
- Beiträge: 90
- Registriert: Dienstag 19. Mai 2020, 19:17
- Wohnort: Dußlingen
- Kontaktdaten:
Vielen Dank!__deets__ hat geschrieben: ↑Montag 15. Juni 2020, 11:41 Du hast pyside selbst installiert, und damit die Integration mit dem System verloren. Der gezeigte Code vergroessert die Schrift einfach nur um 50% gegenueber der Default-Einstellung. Das ist IMHO nicht wirklich eine Antwort auf die Frage, weil es ja nicht automatisch funktioniert. Aber das ist, was sie dir schreiben.
Um zu einem Ergebnis zu kommen:
In Java(eine plattformunabhängige Programmiersprache) kann die Größe der Schrift im Betriebssystem übernommen, aber in Python leider nicht.
Richtig?
- __blackjack__
- User
- Beiträge: 13533
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@PythonMarlem: Das geht auch in Python beziehungsweise hat das mit Python als Programmiersprache ja erst einmal gar nichts zu tun was Bibliotheken machen die nicht direkt mit der Sprache kommen. Unter Windows und so wie das bei Dir installiert ist, scheint das nicht vom System übernommen zu werden. Was man da sicher machen könnte ist sich die Information mit `pywin32` & Co auf dem normalen für Windows vorgesehenen Weg zu holen und zu verwenden.
Code: Alles auswählen
- (void)countSheep {
unsigned int sheep = 0;
while ( ! [self isAsleep]) { ++sheep; }
}
-
- User
- Beiträge: 90
- Registriert: Dienstag 19. Mai 2020, 19:17
- Wohnort: Dußlingen
- Kontaktdaten:
es funktioniert nicht so elegant wie mit Java, aber sehbehinderte Menschen können per Anwendungsparameter die Schriftgröße mitgeben:
Angenommen ein Mensch mit Sehbehinderung hat im Betriebssystem größere Schrift eingestellt und möchte nun das Python-Programm auch mit größerer Schrift starten, dann kann er die Schriftgröße als Parameter mitgeben:
Code: Alles auswählen
def AppSchriftSetzen(appv,fontsize):
font = appv.font()
font.setPointSize(font.pointSize() * fontsize)
appv.setFont(font)
Code: Alles auswählen
def main():
....
if len(sys.argv) >= 2:
AppSchriftSetzen(app, int(sys.argv[1]))
else:
AppSchriftSetzen(app, 0);
win.showNormal()
app.exec_()
if __name__ == '__main__':
main()
Die 2 ist die Schriftgröße.python.exe Barrierefrei.py 2
Wenn man das schon so umstaendlich macht, dann wenigstens mit dem Modul argparse oder etwas aehnlichem. Damit man auch mehr Parameter angeben kann (Farbenblindheit zB).
So oder so macht man das nicht. Die APIs die Java benutzt, kannst du auch von Python aus benutzen. MS hat viele Dokumente zu dem Thema. Das solltest du dann machen.
So oder so macht man das nicht. Die APIs die Java benutzt, kannst du auch von Python aus benutzen. MS hat viele Dokumente zu dem Thema. Das solltest du dann machen.
@PythonMarlem:
Nur mal nebenbei gefragt: Benutzt du PySide?
Denn mich wundert, dass deine zitierte Antwort sich sowohl auf PySide als auch auf Linux bezieht. Und ich würde fast wetten, dass du weder Linux noch PySide verwendest. Möglicherweise gab es da ein Kommunikationsproblem?
Nur mal nebenbei gefragt: Benutzt du PySide?
Denn mich wundert, dass deine zitierte Antwort sich sowohl auf PySide als auch auf Linux bezieht. Und ich würde fast wetten, dass du weder Linux noch PySide verwendest. Möglicherweise gab es da ein Kommunikationsproblem?