Advertisement
DoromaAnim

eee

Jan 6th, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. import tkinter as tk
  2. import baza
  3.  
  4. Buttons = ["person", "book", "borrows"]
  5. PersonHeaders = ["Id", "Osoba", "email"]
  6. BookHeader = ["Id", "Autor", "Tytul", "Rok wydania", "Liczba"]
  7. BorrowsHeader = ["Id książki", "Id osoby"]
  8. current = None
  9.  
  10. class TableFrame(tk.Frame):
  11. def __init__(self, parent, vertical=True, horizontal=True):
  12. super().__init__(parent)
  13. self.columnconfigure(0, weight=1)
  14. self.rowconfigure(0, weight=1)
  15.  
  16. self.canvas = tk.Canvas(self)
  17. self.canvas.grid(row=0, column=0, sticky="news")
  18.  
  19. self.vsb = tk.Scrollbar(self, orient="vertical", command=self.canvas.yview)
  20. self.hsb = tk.Scrollbar(self, orient="horizontal", command=self.canvas.xview)
  21. if vertical:
  22. self.vsb.grid(row=0, column=1, sticky="ns")
  23. if horizontal:
  24. self.hsb.grid(row=1, column=0, sticky="we")
  25. self.canvas.configure(yscrollcommand=self.vsb.set)
  26. self.canvas.configure(xscrollcommand=self.hsb.set)
  27.  
  28. self.frame = tk.Frame(self.canvas)
  29. self.canvas.create_window((0,0), window=self.frame, anchor="nw")
  30.  
  31. self.frame.bind("<Configure>", self.resize)
  32.  
  33. def resize(self, event=None):
  34. self.canvas.configure(scrollregion=self.canvas.bbox("all"))
  35.  
  36. def load_data(self, headers, data):
  37. rows = len(data)
  38. columns = len(headers)
  39.  
  40. self.labels = [[tk.Label() for j in range(columns)] for i in range(rows + 1)]
  41.  
  42. for i, j in enumerate(headers):
  43. x = tk.Label(self.frame, text=j, width = 20)
  44. x.grid(row=0, column=i)
  45. self.labels[0][i] = x
  46.  
  47. for i in range(rows):
  48. for j in range(columns):
  49. x = tk.Label(self.frame, text=data[i][j])
  50. x.grid(row=i+1, column=j)
  51. self.labels[i][j] = x
  52.  
  53.  
  54. def raise_frame(frame, button_name):
  55. global current
  56. current = button_name
  57. frame.tkraise()
  58. frame.tkraise()
  59.  
  60. def add(root):
  61. print("jestem")
  62. win2 = tk.Toplevel(root)
  63. tk.Entry(win2, text = "eee").grid(row = 0, column=0)
  64. tk.Entry(win2, text = "aaa").grid(row = 0, column=1)
  65. # if current == "book":
  66.  
  67. # pass
  68.  
  69. def change():
  70. pass
  71.  
  72. def main():
  73. root = tk.Tk()
  74. root.columnconfigure(0, weight=1)
  75. root.rowconfigure(0, weight=1)
  76.  
  77. mainframe = tk.Frame(root, bg="red")
  78. mainframe.grid(row=0, column=0, sticky="news")
  79.  
  80. for i in range(3):
  81. mainframe.columnconfigure(i, weight=1)
  82.  
  83. for i in range(1):
  84. mainframe.rowconfigure(i, weight=1)
  85.  
  86. table_frames = [TableFrame(mainframe), TableFrame(mainframe),
  87. TableFrame(mainframe)]
  88.  
  89. session = baza.load_database()
  90.  
  91. table_frames[0].load_data(PersonHeaders, baza.get_person_list(session))
  92. table_frames[1].load_data(BookHeader, baza.get_books_list(session))
  93. table_frames[2].load_data(BorrowsHeader, baza.get_borrows_list(session))
  94. table_frames[0].grid(row=1, column=0, columnspan=3)
  95. table_frames[1].grid(row=1, column=0, columnspan=3)
  96. table_frames[2].grid(row=1, column=0, columnspan=3)
  97.  
  98. tk.Button(mainframe, text="Osoby", bg="pink", command=lambda : raise_frame(table_frames[0], Buttons[0])).grid(row=0, column=0, sticky="news")
  99. tk.Button(mainframe, text="Książki", bg="pink", command=lambda : raise_frame(table_frames[1], Buttons[1])).grid(row=0, column=1, sticky="news")
  100. tk.Button(mainframe, text="Pożyczenia", bg="pink", command=lambda : raise_frame(table_frames[2], Buttons[2])).grid(row=0, column=2, sticky="news")
  101. tk.Button(mainframe, text="Dodaj", bg="pink", command=lambda : add(root)).grid(row=2, column=0, sticky="news")
  102. tk.Button(mainframe, text="Zmień", bg="pink", command=change).grid(row=2, column=1, sticky="news")
  103. tk.Button(mainframe, text="Wyjdź", bg="pink", command=root.destroy).grid(row=2, column=2, sticky="news")
  104.  
  105. root.mainloop()
  106.  
  107. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement