furas

Python - Tkinter - Weather Station (reddit/r/learnpython)

Aug 27th, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. #
  2. # https://www.reddit.com/r/learnpython/comments/4ztmwg/tkinter_grid_frame_class/
  3. #
  4.  
  5. import Tkinter as Tk
  6.  
  7.  
  8. class GUI(object):
  9.     def __init__(self, root, labels):
  10.         self.root = root
  11.        
  12.         self.labels = labels
  13.         self.intervals_dict = {}
  14.        
  15.         self.root.title('Weather station')
  16.        
  17.         self.parent_frame = None
  18.         self.intervals_frame = None
  19.         self.data_frame = None
  20.  
  21.         self.filename_frame = None
  22.  
  23.         self.initialize_frames()
  24.         self.initialize_intervals()
  25.         self.initialize_data()
  26.  
  27.     def initialize_frames(self):
  28.         self.parent_frame = Tk.Frame(self.root)
  29.         self.parent_frame.grid()
  30.        
  31.         self.intervals_frame = Tk.Frame(self.parent_frame, borderwidth=3,
  32.                                         relief='ridge')
  33.         self.intervals_frame.grid(row=0, column=0, pady=5, rowspan=2, sticky='NEWS')
  34.  
  35.         self.data_frame = Tk.Frame(self.parent_frame, borderwidth=3,
  36.                                    relief='ridge')
  37.         self.data_frame.grid(row=1, column=1, sticky='NEWS', pady=5)
  38.  
  39.  
  40.         self.filename_frame = Tk.Frame(self.parent_frame, borderwidth=3,
  41.                                    relief='ridge')
  42.         self.filename_frame.grid(row=0, column=1, sticky='NEWS', pady=5)
  43.  
  44.        
  45.         l = Tk.Label(self.filename_frame, text='Some File Name')
  46.         l.grid()
  47.  
  48.     def initialize_intervals(self):
  49.         Tk.Label(self.intervals_frame, text='Save\nintervals',
  50.                  font='bold').grid(row=0, sticky='wens')
  51.         for label in self.labels:
  52.             lab = Tk.Label(self.intervals_frame, text=label)
  53.             lab.grid(sticky='W')
  54.             entry = Tk.Entry(self.intervals_frame)
  55.             entry.grid()
  56.  
  57.     def initialize_data(self):
  58.         Tk.Label(self.data_frame, text='Live data',
  59.                  font='bold').grid(sticky='wens')
  60.         for label in self.labels[1:]:
  61.             lab = Tk.Label(self.data_frame, text=label)
  62.             lab.grid(sticky='W')
  63.             entry = Tk.Entry(self.data_frame)
  64.             entry.grid()
  65.  
  66.  
  67. tk = Tk.Tk()
  68. labels = ['Time (s)', 'Humidity (%)', 'Lux (lumen)',
  69.           'Temperature1 (oC)', 'Temperature2 (oC)',
  70.           'Pressure (kPa)']
  71. GUI(tk, labels)
  72. tk.mainloop()
Add Comment
Please, Sign In to add comment