Advertisement
Guest User

Interactive Helloworld

a guest
Oct 26th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None | 0 0
  1. import tkinter.ttk
  2.  
  3.  
  4. class View(object):
  5.     root = None
  6.  
  7.     edit_var = None
  8.     label_var = None
  9.     doit_button = None
  10.  
  11.     def __init__(self):
  12.         self.root = tkinter.Tk()
  13.  
  14.         self.root.title('Interactive Helloworld')
  15.  
  16.         x, y, w, h = 0, 0, 300, 75
  17.         self.root.geometry('%sx%s+%s+%s' % (w, h, x, y))
  18.  
  19.         main_frame = tkinter.ttk.Frame(self.root)
  20.         main_frame['padding'] = (5, 5)
  21.         main_frame.pack(side='top', fill='both', expand=True)
  22.  
  23.         self.edit_var = tkinter.StringVar()
  24.         edit = tkinter.ttk.Entry(main_frame, textvariable=self.edit_var)
  25.         edit.pack(side='top', fill='x')
  26.  
  27.         self.label_var = tkinter.StringVar()
  28.         label = tkinter.ttk.Label(main_frame, textvariable=self.label_var)
  29.         label.pack(side='top', fill='x')
  30.  
  31.         self.doit_button = tkinter.ttk.Button(main_frame, text='DO IT')
  32.         self.doit_button.pack(side='top', fill='x')
  33.  
  34.     def close(self):
  35.         self.root.destroy()
  36.         self.root.quit()
  37.  
  38.  
  39. class Model(object):
  40.     ui = None
  41.  
  42.     def __init__(self, view):
  43.         self.ui = view
  44.  
  45.     def doit(self):
  46.         text = self.ui.edit_var.get()
  47.         self.ui.label_var.set(text)
  48.  
  49.  
  50. class Ctrl(object):
  51.     view = None
  52.     model = None
  53.  
  54.     def __init__(self):
  55.         self.view = View()
  56.         self.model = Model(self.view)
  57.  
  58.         self.bind()
  59.  
  60.         self.view.root.protocol('WM_DELETE_WINDOW', self.close_handler)
  61.         self.view.root.mainloop()
  62.  
  63.     def bind(self):
  64.         self.view.doit_button.bind("<Button-1>", self.doit_handler)
  65.  
  66.     def doit_handler(self, event):
  67.         self.model.doit()
  68.  
  69.     def close_handler(self):
  70.         self.view.close()
  71.  
  72.  
  73. class App(object):
  74.     ctrl = None
  75.  
  76.     def __init__(self):
  77.         self.ctrl = Ctrl()
  78.  
  79.  
  80. if __name__ == '__main__':
  81.     app = App()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement