diff options
Diffstat (limited to 'python-graphics/test.py')
| -rw-r--r-- | python-graphics/test.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/python-graphics/test.py b/python-graphics/test.py new file mode 100644 index 0000000..d5838c5 --- /dev/null +++ b/python-graphics/test.py @@ -0,0 +1,55 @@ +import tkinter as tk + +class ListFrame(tk.Frame): + def __init__(self, master, items=[]): + super().__init__(master) + self.list = tk.Listbox(self) + self.scroll = tk.Scrollbar(self, orient=tk.VERTICAL, + command=self.list.yview) + self.list.config(yscrollcommand=self.scroll.set) + self.list.insert(0, *items) + self.list.pack(side=tk.LEFT) + self.scroll.pack(side=tk.LEFT, fill=tk.Y) + + def pop_selection(self): + index = self.list.curselection() + if index: + value = self.list.get(index) + self.list.delete(index) + return value + + def insert_item(self, item): + self.list.insert(tk.END, item) + +class App(tk.Tk): + def __init__(self): + super().__init__() + months = ["Январь", "Февраль", "Март", "Апрель", + "Май", "Июнь", "Июль", "Август", "Сентябрь", + "Октябрь", "Ноябрь", "Декабрь"] + self.frame_a = ListFrame(self, months) + self.frame_b = ListFrame(self) + self.btn_right = tk.Button(self, text=">", + command=self.move_right) + self.btn_left = tk.Button(self, text="<", + command=self.move_left) + + self.frame_a.pack(side=tk.LEFT, padx=10, pady=10) + self.frame_b.pack(side=tk.RIGHT, padx=10, pady=10) + self.btn_right.pack(expand=True, ipadx=5) + self.btn_left.pack(expand=True, ipadx=5) + + def move_right(self): + self.move(self.frame_a, self.frame_b) + def move_left(self): + self.move(self.frame_b, self.frame_a) + + def move(self, frame_from, frame_to): + value = frame_from.pop_selection() + if value: + frame_to.insert_item(value) + +if __name__ == "__main__": + app = App() + app.mainloop() + |