Probleme mit Tkinter Fenstergrössen

Fragen zu Tkinter.
Antworten
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Python Freunde!

Unter Linux SuSE 9.0 habe ich festgestellt, dass mit der folgender
Anweisung ein Tkinter-Fenster nicht auf die Maximalgrösse der im
System konfigurierten Bildschirmauflösung von 1280*1024 zu bringen ist.
Es gibt auf der rechten Seite einen Rand von ca. 8 Pixeln. Dieser
Rand ist auch nicht mit erhöhen der width auf > als 1280 zu überwinden.

Bei Windows 2000 wird das Fenster interessanterweise um 8 Pixel zu breit

Wurde von euch auch schon jemand mit diesem Verhalten konfrontiert?
Wenn ja, wie habt ihr das Problem gelöst? Vielleicht mache ich etwas
falsch?

Hier kommen drei Sourceabschnitte, welche sich auf das erwähnte
Problem beziehen:


from Tkinter import*

# Mit dieser Anweisung passiert folgendes:
# Fenster unter Linux (SuSE 9.0) wird in der Breite um ca. 8 Pixel zu kurz
# Fenster unter Windows (2000) wird um ca. 8 Pixel zu breit

root = Tk()

xpos = 0
ypos = 0
width = 1280
height = 1024
root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))

root.mainloop()



from Tkinter import*

# Fester unter Linux (Suse 9.0) wird mit der folgenden
# Anweisungen auf die richtige grösse gebracht.

root = Tk()

root.maxsize(root.winfo_screenwidth(),root.winfo_screenheight())

ScreenWidth = root.winfo_screenwidth()
ScreenHeight = root.winfo_screenheight()

xpos = 0
ypos = 0
width = ScreenWidth
height = ScreenHeight
root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))

root.mainloop()


from Tkinter import*

# Fester unter Windows (2000) wird mit der folgenden
# Anweisungen auf die richtige Grösse gebracht.

root = Tk()

root.maxsize(root.winfo_screenwidth(),root.winfo_screenheight())

ScreenWidth = root.winfo_screenwidth()-8
ScreenHeight = root.winfo_screenheight()-28

xpos = 0
ypos = 0
width = ScreenWidth
height = ScreenHeight
root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))

root.mainloop()

Gruss wuf
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
wuf hat geschrieben:Es gibt auf der rechten Seite einen Rand von ca. 8 Pixeln. Dieser
Rand ist auch nicht mit erhöhen der width auf > als 1280 zu überwinden.

Bei Windows 2000 wird das Fenster interessanterweise um 8 Pixel zu breit
Im Groben kann ich Deine Beobachtungen bestätigen (XP und Linux/KDE), wobei unter KDE das Ergebnis auch stark von eventuell vorhandenen Kontrollleisten abhängt. Hast Du das ganze mal unter anderen Window-Managern getestet?
wuf hat geschrieben:Vielleicht mache ich etwas falsch?
Zu hohe Erwartungen an Tkinter? Ich glaub' nicht, dass Tkinter geeignet und dafür gedacht ist, pixelgenau irgendwas auf den Bildschirm zu bringen. Aber auch das XWindow-System von Linux/Unix bzw. die zahllosen Windowmanager, die darauf aufsetzen, werden einem nicht in jedem Falle pixelgenaue Ausrichtungen erlauben.

Jan
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Jan

Danke für deine Antwort und Anregungen!

Nein ich hatte nur die Möglichkeit es unter Windows-2000
auszutesten. Du hast recht manchmal verirrt man sich auf die
Pixelebene und versucht grafische Kosmetik zu machen. Ich
arbeite gerne mit der Tkinter-GUI. Es ist erstaunlich wie
damit auf einfache Weise Programme mit Grafischer Benutzer-
oberfläche entwickelt werden können, die problemlos auf
verschiedenen Platformen laufen. Ich konnte mich dank
Tkinter fast vollständig von MS VB lösen.

Gruss wuf
Take it easy Mates!
Antworten