Seite 1 von 1

Tkinter inhalt im Vollbild zentrieren

Verfasst: Mittwoch 19. November 2014, 21:43
von schnibli
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

Re: Tkinter inhalt im Vollbild zentrieren

Verfasst: Sonntag 23. November 2014, 16:28
von Michael Schneider
Hi,

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

LG,
Sky

Re: Tkinter inhalt im Vollbild zentrieren

Verfasst: Sonntag 23. November 2014, 17:08
von wuf
@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:

Re: Tkinter inhalt im Vollbild zentrieren

Verfasst: Sonntag 23. November 2014, 20:35
von Michael Schneider
Aha, cool. Danke! :-)