Tkinter inhalt im Vollbild zentrieren

Fragen zu Tkinter.
Antworten
schnibli
User
Beiträge: 27
Registriert: Mittwoch 19. November 2014, 18:52

Hallo zusammen,
Ich arbeite an einem kleinem Gui, zurzeit ist dies im Vollbildmodus, jedoch weis ich nicht wie ich den Inhalt da zentrieren kann.
Ich habe zuerst versucht mit padding:

Code: Alles auswählen

mainframe = ttk.Frame(root, padding="3 3 12 12")

den text an die Richtige Position zu schieben. Jedoch währe es einfacher wenn dies automatisch geschehen würde :s
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi,

was meinst Du mit "Tkinter im Vollbildmodus"? Wie kann man den denn aktivieren? Ich wusste gar nicht, dass sowas geht. :-)

LG,
Sky
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

@Michael Schneider
Doch das geht:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# BEMERKUNG: Funktioniert unter Linux & Windows !
#            Wechsel der Fenstergrösse mit Taste F11

try:
    #~~ For Python 2.x
    import Tkinter as tk
except ImportError:
    #~~ For Python 3.x
    import tkinter as tk

APP_WIN_XPOS = 50
APP_WIN_YPOS = 300
APP_WIN_WIDTH = 400
APP_WIN_HEIGHT = 400

class App(object):
   
    def __init__(self):
        self.fullscreen = False
        self.win = tk.Tk()
        self.win.protocol("WM_DELETE_WINDOW", self.close)

        self.win.title("Application size")
        self.win.geometry('{0}x{1}+{2}+{3}'.format(
            APP_WIN_WIDTH, APP_WIN_HEIGHT, APP_WIN_XPOS, APP_WIN_YPOS))

        self.win.bind('<F11>', self.toggle_screen_size)
       
        self.label_text = tk.StringVar()
        self.label = tk.Label(self.win, textvariable=self.label_text)
        self.label.pack(expand=True)
        self.label_text.set("Press key F11 for fullscreen")
        self.fullscreen  = False
        
        self.win.focus_set()

    def toggle_screen_size(self, event):
        self.fullscreen = not self.fullscreen
        title, text = (
            ("Application size", "Press key F11 for fullscreen"),
            ("Fullscreen", "Press key F11 for application screensize")
            )[self.fullscreen]
        self.win.title(title)
        self.label_text.set(text)
        self.win.wm_attributes("-fullscreen", self.fullscreen)

    def run(self):
        self.win.mainloop()
   
    def close(self):
        # Do things before closing the application
        self.win.destroy()
           
app = App()
app.run()
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Aha, cool. Danke! :-)
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten