Ich lief Code auf meinem Raspberry Pi, und bekam den richtigen Wert für mein Display (das ist kein 4K-Display).
Ich habe nicht die Lösung, aber ich beobachte, dass das Verhältnis zwischen dem erwarteten/beobachteten Antworten
sind
3840/1536 = 2.5
2160/864 = 2.5
Vielleicht macht die Bildschirmtreiber für eine 4K-Display eine Differenz zwischen dem realen physikalischen Pixel (3840x2160) und irgendein Konzept von "logischen Pixeln". Der Zweck wäre, zu vermeiden, dass einige Software beispielsweise einen 8-Punkt-Text mit 8 realen physikalischen Pixeln anzeigt, da dies unlesbar wäre.
Ich kann das nicht testen (ich habe die Hardware nicht), es ist nur eine Hypothese. Ich habe vielleicht auch nicht die genaue Terminologie.
(BTW, auf iOS gibt es die Konzepte von Punkten vs Pixel - Sie können nach diesen Begriffen suchen. Auch wenn es Ihr Problem nicht beantwortet, kann es ein ähnliches Problem sein).
Scheint [hier] (http://stackoverflow.com/questions/17129144/tk-winfo-returns-wrong-screensize-python-2-7-5-on-windows-8) auch zu passieren. Ich verstehe nicht warum (funktioniert gut auf meiner Maschine). – TigerhawkT3
Ist dies auf Windows? Es könnte ein Flag mit hohem DPI sein, das bedeutet, dass Tk skaliert wird. – patthoyts
Ja, es ist unter Windows 10 64-Bit. Ich glaube, die Standard-DPI für Tkinter ist 72, mein Bildschirm wäre 15,6 Zoll würde 282 DPI haben. –