proffreda

Python GUI Examples

Apr 12th, 2016
1,113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. from tkinter import Tk, Label, Button
  2.  
  3. class MyFirstGUI:
  4. def __init__(self, master):
  5. self.master = master
  6. master.title("A simple GUI")
  7.  
  8. self.label = Label(master, text="This is our first GUI!")
  9. self.label.pack()
  10.  
  11. self.greet_button = Button(master, text="Greet", command=self.greet)
  12. self.greet_button.pack()
  13.  
  14. self.close_button = Button(master, text="Close", command=master.quit)
  15. self.close_button.pack()
  16.  
  17. def greet(self):
  18. print("Greetings!")
  19.  
  20. root = Tk()
  21. my_gui = MyFirstGUI(root)
  22. root.mainloop()
  23.  
  24.  
  25. *************************************************************
  26. from tkinter import Tk, Label, Button, StringVar
  27.  
  28. class MyFirstGUI:
  29. LABEL_TEXT = [
  30. "This is our first GUI!",
  31. "Actually, this is our second GUI.",
  32. "We made it more interesting...",
  33. "...by making this label interactive.",
  34. "Go on, click on it again.",
  35. ]
  36. def __init__(self, master):
  37. self.master = master
  38. master.title("A simple GUI")
  39.  
  40. self.label_index = 0
  41. self.label_text = StringVar()
  42. self.label_text.set(self.LABEL_TEXT[self.label_index])
  43. self.label = Label(master, textvariable=self.label_text)
  44. self.label.bind("<Button-1>", self.cycle_label_text)
  45. self.label.pack()
  46.  
  47. self.greet_button = Button(master, text="Greet", command=self.greet)
  48. self.greet_button.pack()
  49.  
  50. self.close_button = Button(master, text="Close", command=master.quit)
  51. self.close_button.pack()
  52.  
  53. def greet(self):
  54. print("Greetings!")
  55.  
  56. def cycle_label_text(self, event):
  57. self.label_index += 1
  58. self.label_index %= len(self.LABEL_TEXT) # wrap around
  59. self.label_text.set(self.LABEL_TEXT[self.label_index])
  60.  
  61. root = Tk()
  62. my_gui = MyFirstGUI(root)
  63. root.mainloop()
  64. ***************************************************************
  65. from tkinter import Tk, Label, Button, Entry, IntVar, END, W, E
  66.  
  67. class Calculator:
  68.  
  69. def __init__(self, master):
  70. self.master = master
  71. master.title("Calculator")
  72.  
  73. self.total = 0
  74. self.entered_number = 0
  75.  
  76. self.total_label_text = IntVar()
  77. self.total_label_text.set(self.total)
  78. self.total_label = Label(master, textvariable=self.total_label_text)
  79.  
  80. self.label = Label(master, text="Total:")
  81.  
  82. vcmd = master.register(self.validate) # we have to wrap the command
  83. self.entry = Entry(master, validate="key", validatecommand=(vcmd, '%P'))
  84.  
  85. self.add_button = Button(master, text="+", command=lambda: self.update("add"))
  86. self.subtract_button = Button(master, text="-", command=lambda: self.update("subtract"))
  87. self.reset_button = Button(master, text="Reset", command=lambda: self.update("reset"))
  88.  
  89. # LAYOUT
  90.  
  91. self.label.grid(row=0, column=0, sticky=W)
  92. self.total_label.grid(row=0, column=1, columnspan=2, sticky=E)
  93.  
  94. self.entry.grid(row=1, column=0, columnspan=3, sticky=W+E)
  95.  
  96. self.add_button.grid(row=2, column=0)
  97. self.subtract_button.grid(row=2, column=1)
  98. self.reset_button.grid(row=2, column=2, sticky=W+E)
  99.  
  100. def validate(self, new_text):
  101. if not new_text: # the field is being cleared
  102. self.entered_number = 0
  103. return True
  104.  
  105. try:
  106. self.entered_number = int(new_text)
  107. return True
  108. except ValueError:
  109. return False
  110.  
  111. def update(self, method):
  112. if method == "add":
  113. self.total += self.entered_number
  114. elif method == "subtract":
  115. self.total -= self.entered_number
  116. else: # reset
  117. self.total = 0
  118.  
  119. self.total_label_text.set(self.total)
  120. self.entry.delete(0, END)
  121.  
  122. root = Tk()
  123. my_gui = Calculator(root)
  124. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment