Auflösungsproblem von Widgets mit definierter Breite

Fragen zu Tkinter.
Antworten
Particledust
User
Beiträge: 15
Registriert: Samstag 1. Februar 2020, 09:17

Hallo,

in meiner Tkinter Anwendung verwende ich Diagramme, Texte sowie Bilder die eine festdefinierte Länge und Höhe haben. Wenn ich die Anwendung auf einem anderem Computer ausführe, der dieselbe Bildschirmauflösung besitzt, wie der Computer auf dem ich die Tkinter Anwendung geschrieben habe, dann wird alles korrekt dargestellt.

Führt man die Tkinteranwendung auf einem Computer mit einer geringeren Bildschirmauflösung aus, so werden die Bilder, Texte sowie Diagramme zum Teil "abgeschnitten". Sie werden also nicht mehr vollständig angezeigt.


Um dies zu verdeutlichen, habe ich ein Minimalbsp. erstellt, bei welcher ich Buttons mit festdefinierten Längen und unterschiedlichen Auflösungen 1366 x 768 vs 1280 x 720 verwende:

Code: Alles auswählen

from tkinter import *

root = Tk()
root.attributes('-zoomed', True)          # For Linux user: maximaizes window
#root.state('zoomed')                     # For windows user use root.state('zoomed') 
                                          #instead         

Button(root, text = "Replacement for the main content ", padx = 450, pady=30).grid(row = 0, column = 0)
Button(root, text = "Replacement for an image, diagram, text", pady = 20).grid(row = 0, column = 1, padx = 5)


mainloop()
Verwende ich dieselbe Bildschirmauflösung wie beim erstellen der Anwendung wird alles korrekt angezeigt:

Bild

Für eine geringere Auflösung wird ein Teil abgeschnitten:

Bild



Weiß jemand von euch, wie ich das Problem beheben kann?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Keine festen Größen zu definieren, und die Lay-out -Algorithmen ihren Job machen lassen.
Benutzeravatar
__blackjack__
User
Beiträge: 14086
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Particledust: Und wenn man das macht was __deets__ geschrieben hat, und es trotzdem nicht auf den Bildschirm passt, dann passt es halt nicht auf den Bildschirm. Man kann nicht beliebig viel auf einer gegebenen Bildschirmgrösse darstellen, beziehungsweise kann man den Bildschirm nicht beliebig verkleinern ohne dass es dann halt irgendwann nicht mehr alles drauf passt.

Was sollte denn bei dem zweiten Bild Deiner Meinung nach passieren?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Particledust
User
Beiträge: 15
Registriert: Samstag 1. Februar 2020, 09:17

In der GUI kann der Benutzer Messdaten eingeben und auf einen Auswert-Button drücken. Aus den Messdaten wird ein Plot mithilfe von matplotlib erstellt. Hier muss ja eine Größe (Höhe, Breite) für die Figur vorgegeben werden.

In anderen Anwendungen werden doch externe Bilder/Logos etc . verwendet. Hier muss man doch auch explizit vorgeben, wie viel Fläche diese einnehmen sollen. Es muss doch eine Möglichkeit geben, solche Objekte automatisch zu skalieren.
Antworten