furas

Python - Tkinter - Change Pages

Aug 10th, 2016
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.90 KB | None | 0 0
  1. #
  2. # https://www.reddit.com/r/learnpython/comments/4x2q73/python_35_tkinter_key_bindings_for_a_specific/
  3. #
  4.  
  5. from tkinter import *
  6. from tkinter import filedialog
  7. from tkinter.ttk import *
  8. from PIL import Image, ImageTk
  9. import numpy as np
  10.  
  11.  
  12. class App(Tk):
  13.  
  14.     def __init__(self, *args, **kwargs):
  15.  
  16.         Tk.__init__(self, *args, **kwargs)
  17.  
  18.         Tk.wm_title(self, "GUI V0.5")
  19.  
  20.  
  21.         container = Frame(self)
  22.         container.winfo_toplevel().geometry("600x600")
  23.         container.pack(side="top", fill="both", expand=True)
  24.         container.grid_rowconfigure(0, weight=1)
  25.         container.grid_columnconfigure(0, weight=1)
  26.  
  27.  
  28.         self.frames = {}
  29.  
  30.         for F in (tagPage, heatPage):
  31.             name = F.__name__
  32.  
  33.             frame = F(container, self)
  34.  
  35.             self.frames[name] = frame
  36.  
  37.             frame.grid(row=0, column=0, sticky="nsew")
  38.  
  39.         self.show_frame('tagPage')
  40.  
  41.     def show_frame(self, cont):
  42.  
  43.         frame = self.frames[cont]
  44.         frame.tkraise()
  45.         frame.focus_set()
  46.  
  47.  
  48. class heatPage(Frame):
  49.  
  50.     def __init__(self, parent, controller):
  51.         Frame.__init__(self, parent)
  52.         self.controller = controller
  53.  
  54.         self.initUI()
  55.  
  56.     def initUI(self):
  57.  
  58.         self.button = Button(self, text="Change", command=lambda:self.controller.show_frame("tagPage"))
  59.         self.button.pack()
  60.  
  61.         self.posNegDisp = Label(self, text="heatPage:")
  62.         self.posNegDisp.pack()
  63.  
  64.         self.bind('1', self._set_feature_Val)  
  65.         self.bind('2', self._set_feature_Val)
  66.  
  67.  
  68.     def _set_feature_Val(self, event):
  69.  
  70.         if event.char == '1':
  71.            self.featureLabel = 1
  72.            self.posNegDisp.config(text = "heatPage:\n     Positive")
  73.            print("heatPage: positive")
  74.         elif event.char == '2':
  75.            self.featureLabel = -1
  76.            self.posNegDisp.config(text = "heatPage:\n     Negative")
  77.            print("heatPage: negative")
  78.  
  79.  
  80. class tagPage(Frame):
  81.  
  82.     def __init__(self, parent, controller):
  83.         Frame.__init__(self, parent)
  84.         self.parent = parent
  85.         self.controller = controller
  86.        
  87.         self.initUI()
  88.  
  89.     def initUI(self):
  90.  
  91.         self.button = Button(self, text="Change", command=lambda:self.controller.show_frame("heatPage"))
  92.         self.button.pack()
  93.  
  94.         self.posNegDisp = Label(self, text="tagPage:")
  95.         self.posNegDisp.pack()
  96.  
  97.         self.bind('1', self._set_feature_Val)  
  98.         self.bind('2', self._set_feature_Val)
  99.  
  100.     def _set_feature_Val(self, event):
  101.  
  102.         if event.char == '1':
  103.            self.featureLabel = 1
  104.            self.posNegDisp.config(text = "tagPage:\n     Positive")
  105.            print("tagPage: positive")
  106.         elif event.char == '2':
  107.            self.featureLabel = -1
  108.            self.posNegDisp.config(text = "tagPage:\n     Negative")
  109.            print("tagPage: negative")
  110.  
  111. app = App()
  112. app.mainloop()
Add Comment
Please, Sign In to add comment