Advertisement
Xonoa

Class Structure of TKInter Program Discord Question

May 15th, 2023
2,411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. import tkinter as tk
  2. from Frame_Class import FrameClass
  3.  
  4. class Base(tk.Frame): #A
  5.     def __init__(self, parent:tk.Tk):
  6.         super(Base, self).__init__(parent) #A
  7.         self.left_frame = LeftFrame(self)
  8.         self.left_frame.grid(row=0, column=0)
  9.         self.right_frame = RightFrame(self)
  10.         self.right_frame.grid(row=0, column=1)
  11.         parent.bind('<<RightButton>>', lambda x: self.do_stuff())
  12.         self.pack() #A
  13.        
  14.     def do_stuff(self):
  15.         left_value = self.left_frame.entry.get()
  16.         new_value = left_value + self.right_frame.entry.get()
  17.         self.left_frame.label.configure(text=new_value)
  18.        
  19.  
  20. class LeftFrame(tk.Frame):
  21.     def __init__(self, parent):
  22.         super(LeftFrame, self).__init__(parent)
  23.         self.label = tk.Label(self, text='foo')
  24.         self.label.pack()
  25.         self.entry = tk.Entry(self)
  26.         self.entry.pack()
  27.        
  28. class RightFrame(tk.Frame):
  29.     def __init__(self, parent):
  30.         super(RightFrame, self).__init__(parent)
  31.         self.butt_direct = tk.Button(self, command=self.do_stuff, text='direct')
  32.         self.butt_direct.pack()
  33.         self.butt_event = tk.Button(self, command=self.do_stuff_event, text='event')
  34.         self.butt_event.pack()
  35.         self.entry = tk.Entry(self)
  36.         self.entry.pack()
  37.        
  38.     def do_stuff(self):
  39.         left_value = self.master.left_frame.entry.get()
  40.         new_value = left_value + self.entry.get()
  41.         self.master.left_frame.label.configure(text=new_value)
  42.        
  43.     def do_stuff_event(self):
  44.         self.event_generate('<<RightButton>>')
  45.  
  46.  
  47. def main():
  48.     root = tk.Tk()
  49.     Base(root)
  50.     root.mainloop()
  51.    
  52. if __name__ == "__main__": main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement