@apple: ich weiß leider nicht, wo sich der oder die Buttons befinden sollen, die den Frame verschieben sollen. Ich habe sie mal in den Frame selber gelegt.
Aber das kann man umändern. Wenn man den Frame relativ zur augenblicklichen Position verschieben will, kann man die Koordinaten entweder durch place_info oder grid_info abfragen, oder man protokolliert die Position mit, indem man nicht grid oder place benutzt, sondern eigene Funktionen, die sich die Koordinaten merken.
Letzteres habe ich hier mal implementiert. Den Mause Cursor unsichtbar zu machen habe ich auskommentiert, weil man ohne den Mauszeiger zu sehen, schlecht Buttons drücken kann.
Ich habe eine Frameklasse MoveFrame implementiert mit Methoden, die sich die Koordinaten merken und mit Methoden zum Verschieben. Frame1, der verschoben wird, habe ich davon abgeleitet.
Code: Alles auswählen
from Tkinter import *
class MoveFrame(Frame):
def __init__(self,master,**kwargs):
Frame.__init__(self,master,**kwargs)
self.x_or_column=0
self.y_or_row=0
def position_place(self,y,x):
self.y_or_row = y
self.x_or_column = x
self.place(y=y,x=x)
def position_grid(self,row,column):
self.y_or_row = row
self.x_or_column = column
self.grid(row=row,column=column)
def reposition_place(self):
self.position_place(self.y_or_row,self.x_or_column)
def reposition_grid(self):
self.position_grid(self.y_or_row,self.x_or_column)
def move_place(self,dy,dx):
self.position_place(self.y_or_row + dy, self.x_or_column + dx)
def move_grid(self,drow,dcolumn):
self.position_grid(self.y_or_row + drow, self.x_or_column + dcolumn)
def nach_oben(self):
self.move_place(-10,0)
def nach_unten(self):
self.move_place(10,0)
def nach_rechts(self):
self.move_place(0,10)
def nach_links(self):
self.move_place(0,-10)
class Frame1(MoveFrame):
def __init__(self,master,**kwargs):
MoveFrame.__init__(self,master,**kwargs)
Button(self,text='nach oben',command=self.nach_oben).grid(row=0,column=1)
Button(self,text='nach links',command=self.nach_links).grid(row=1,column=0)
Button(self,text='nach rechts',command=self.nach_rechts).grid(row=1,column=2)
Button(self,text='nach unten',command=self.nach_unten).grid(row=2,column=1)
class FullScreenApp(Tk):
def __init__(self):
Tk.__init__(self)
self.configure(background='black')
self.geometry("480x800+0+0")
self.attributes('-fullscreen', True)
self.bind('<Escape>',self.toggle_geom)
self.bind('<Delete>',self.test)
#self.config(cursor="none")
Frame1(self,bg='yellow').position_place(0,0)
def toggle_geom(self,event):
self.attributes('-fullscreen', False)
self.geometry("{0}x{1}+0+0".format(self.winfo_screenwidth()-3, self.winfo_screenheight()-3))
def test(self,event):
self.geometry("200x200+0+0")
FullScreenApp().mainloop()
An Alle: Achtung die Escape Taste Drücken, damit man die Anwendung wieder schließen kann.