Frames auf Vollbild

Fragen zu Tkinter.
Antworten
Woody_99
User
Beiträge: 10
Registriert: Montag 20. November 2017, 20:16

Montag 20. November 2017, 20:26

Hallo, ich bin ein blutiger Anfänger auf dem Gebiet der Programmierung, und benötige etwas Hilfe.
Ich möchte ein Programm, welches schlussendlich auf dem Raspberry laufen soll.
Darin soll man zwischen verschiedenen Oberflächen über einen Buttendruck wechseln soll(da ich nur einen sehr kleinen bereich auf dem Raspberry zum auswählen hab).
Ich wollte es über Frames lösen, aber scheitere im Moment daran, diese Frames an das gesamte Fenster anzupassen (Hauptprgoramm ist schon Vollbild, aber leider die Frames nicht)
Hat jemand von euch eine Lösung.
Danke, Woody

Und hier noch der Code:

Code: Alles auswählen

from tkinter import *
import tkinter as tk
import platform

def raise_frame(frame):
    frame.tkraise()
   
def quit():
    global root
    root.destroy()

root = Tk()
root.attributes('-fullscreen', True)#Vollbild
root.config(background = "#AAAFFF") # Hintergrundfarbe des Fensters

f1 = Frame(root)
f2 = Frame(root)
f3 = Frame(root)
f4 = Frame(root)

for frame in (f1, f2, f3, f4):
    frame.grid(row=0, column=0, sticky='news')


Button(f1, text='Go to frame 2', command=lambda:raise_frame(f2)).pack()
Label(f1, text='FRAME 1').pack()

Label(f2, text='FRAME 2').pack()
Button(f2, text='Go to frame 3', command=lambda:raise_frame(f3)).pack()

Label(f3, text='FRAME 3').pack(side='left')
Button(f3, text='Go to frame 4', command=lambda:raise_frame(f4)).pack(side='left')

Label(f4, text='FRAME 4').pack()
Button(f4, text='Goto to frame 1', command=lambda:raise_frame(f1)).pack()

Button(f1, text="Quit", command=quit).pack()

raise_frame(f1)
root.mainloop()
__deets__
User
Beiträge: 2680
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 20. November 2017, 21:01

Pack kennt noch die Option fill. Schau dir die mal an.
Woody_99
User
Beiträge: 10
Registriert: Montag 20. November 2017, 20:16

Montag 20. November 2017, 21:11

__deets__ hat geschrieben:Pack kennt noch die Option fill. Schau dir die mal an.
Ja, aber das geht, so weit ich weiß, nur in eine Richtung (X oder Y). Beide hab ich nicht geschafft (weder mit und-Verküpfung und auch mit Both funktioniert es nicht)
__deets__
User
Beiträge: 2680
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 20. November 2017, 21:15

Ah. Wahrscheinlich weil du in einen übergeordneten Container steckst. Dann kannst du es mal stattdessen mit Place probieren. Da du ja eine fixe Auflösung & Vollbild hast
suk
User
Beiträge: 17
Registriert: Sonntag 17. Dezember 2017, 01:18

Freitag 22. Dezember 2017, 01:17

Mit dim_x=Tk.winfo_screenwidth() bzw. dim_y=Tk.obj_windows.winfo_screenheight() kannst Du die Dimensionen des Bildschirms abfragen.
Dem Frame könntest Du dann mit Weite und Höhe diese Dimensionen mitgeben. Positionierung natürlich dann auf 0,0 und anchor="nw".
Antworten