Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.50 KB | None | 0 0
  1. _time_begin = 1
  2. """ начало с 1й секунды """
  3.  
  4. _timer_id = False
  5. """ ID интервала таймера """
  6.  
  7. def __init__(self):
  8. tkinter.Tk.__init__(self)
  9. self.title(WINDOW_TITLE)
  10. self.geometry("%sx%s" % (WINDOW_WIDTH, WINDOW_HEIGHT))
  11.  
  12. self.tk_frame_toolbar = tkinter.Frame(self, width=WINDOW_WIDTH, height=WINDOW_TOOLBAR_HEIGHT, background="grey",
  13. relief=tkinter.GROOVE, border=2)
  14.  
  15. self.tk_frame_main = tkinter.Frame(self, width=WINDOW_WIDTH, height=(WINDOW_HEIGHT - WINDOW_TOOLBAR_HEIGHT),
  16. background=WINDOW_MAIN_FRAME_COLOR_BACKGROUND, relief=tkinter.GROOVE,
  17. border=2)
  18.  
  19. self.tk_label_timer = tkinter.Label(self.tk_frame_toolbar, text="0000")
  20. self.tk_label_timer.grid(row=0, column=0, sticky=tkinter.NSEW)
  21.  
  22. self.tk_label_button_new = tkinter.Button(self.tk_frame_toolbar, text="NEW")
  23. self.tk_label_button_new.grid(row=0, column=1, sticky=tkinter.NSEW)
  24.  
  25. self.tk_label_counter = tkinter.Label(self.tk_frame_toolbar, text="00/00")
  26. self.tk_label_counter.grid(row=0, column=2, sticky=tkinter.NSEW)
  27.  
  28. def show_all_count_mine(self):
  29. """
  30. Показываем общее число мин на панели
  31. """
  32. self.tk_label_counter['text'] = "00/%2d" % MINE_COUNT
  33.  
  34. def show_selected_count_mine(self, selected_mine):
  35. """
  36. Показываем расставленное число мин на панели
  37. :type selected_mine: int
  38. """
  39. self.tk_label_counter['text'] = "%2d/%2d" % (selected_mine, MINE_COUNT)
  40.  
  41. def timer_start(self):
  42. """
  43. Включает таймер игры
  44. """
  45. if not self._timer_id and self._time_begin == 1:
  46. self.timer()
  47.  
  48. def timer_stop(self):
  49. """
  50. Выключает таймер игры
  51. """
  52. if self._timer_id:
  53. self.tk_label_timer.after_cancel(self._timer_id)
  54. self._timer_id = False
  55.  
  56. def timer(self):
  57. self.tk_label_timer['text'] = "%0004d" % self._time_begin
  58. self._time_begin += 1
  59. self._timer_id = self.tk_label_timer.after(1000, self.timer)
  60.  
  61. def game_over(self):
  62. """
  63. Показываем окно с поражением
  64. :return:
  65. :rtype: bool
  66. """
  67. self.timer_stop()
  68. tkMessageBox.showerror(GAME_OVER_WINDOW_TITLE, GAME_OVER_MESSAGE)
  69. return False
  70.  
  71. def game_winner(self):
  72. """
  73. Показываем окно с победой
  74. :return:
  75. :rtype: bool
  76. """
  77. self.timer_stop()
  78. tkMessageBox.showinfo(WINNER_WINDOW_TITLE, WINNER_MESSAGE)
  79. return False
  80.  
  81. def grid(self):
  82. super(GUI, self).grid() # тут ошибка...
  83. #super(self).__init__(master=parent, text='inner').grid()
  84. self.tk_frame_toolbar.grid(row=0, column=0)
  85.  
  86. self.tk_frame_toolbar.rowconfigure('all', minsize=WINDOW_TOOLBAR_HEIGHT)
  87.  
  88. width_label_toolbar = (float(WINDOW_WIDTH - WINDOW_TOOLBAR_HEIGHT)) / 2.0
  89. self.tk_frame_toolbar.columnconfigure(0, minsize=width_label_toolbar - 5)
  90. self.tk_frame_toolbar.columnconfigure(1, minsize=WINDOW_TOOLBAR_HEIGHT)
  91. self.tk_frame_toolbar.columnconfigure(2, minsize=width_label_toolbar - 5)
  92.  
  93. self.tk_frame_main.grid(row=1, column=0)
  94. self.is_grid = True
  95.  
  96. def show(self):
  97. if not self.is_grid:
  98. self.grid()
  99. self.mainloop()
  100.  
  101. _time_begin = 1
  102. """ начало с 1й секунды """
  103.  
  104. _timer_id = False
  105. """ ID интервала таймера """
  106.  
  107. def __init__(self):
  108. tkinter.Tk.__init__(self)
  109. self.title(WINDOW_TITLE)
  110. self.geometry("%sx%s" % (WINDOW_WIDTH, WINDOW_HEIGHT))
  111.  
  112. self.tk_frame_toolbar = tkinter.Frame(self, width=WINDOW_WIDTH, height=WINDOW_TOOLBAR_HEIGHT, background="grey",
  113. relief=tkinter.GROOVE, border=2)
  114.  
  115. self.tk_frame_main = tkinter.Frame(self, width=WINDOW_WIDTH, height=(WINDOW_HEIGHT - WINDOW_TOOLBAR_HEIGHT),
  116. background=WINDOW_MAIN_FRAME_COLOR_BACKGROUND, relief=tkinter.GROOVE,
  117. border=2)
  118.  
  119. self.tk_label_timer = tkinter.Label(self.tk_frame_toolbar, text="0000")
  120. self.tk_label_timer.grid(row=0, column=0, sticky=tkinter.NSEW)
  121.  
  122. self.tk_label_button_new = tkinter.Button(self.tk_frame_toolbar, text="NEW")
  123. self.tk_label_button_new.grid(row=0, column=1, sticky=tkinter.NSEW)
  124.  
  125. self.tk_label_counter = tkinter.Label(self.tk_frame_toolbar, text="00/00")
  126. self.tk_label_counter.grid(row=0, column=2, sticky=tkinter.NSEW)
  127.  
  128. def show_all_count_mine(self):
  129. """
  130. Показываем общее число мин на панели
  131. """
  132. self.tk_label_counter['text'] = "00/%2d" % MINE_COUNT
  133.  
  134. def show_selected_count_mine(self, selected_mine):
  135. """
  136. Показываем расставленное число мин на панели
  137. :type selected_mine: int
  138. """
  139. self.tk_label_counter['text'] = "%2d/%2d" % (selected_mine, MINE_COUNT)
  140.  
  141. def timer_start(self):
  142. """
  143. Включает таймер игры
  144. """
  145. if not self._timer_id and self._time_begin == 1:
  146. self.timer()
  147.  
  148. def timer_stop(self):
  149. """
  150. Выключает таймер игры
  151. """
  152. if self._timer_id:
  153. self.tk_label_timer.after_cancel(self._timer_id)
  154. self._timer_id = False
  155.  
  156. def timer(self):
  157. self.tk_label_timer['text'] = "%0004d" % self._time_begin
  158. self._time_begin += 1
  159. self._timer_id = self.tk_label_timer.after(1000, self.timer)
  160.  
  161. def game_over(self):
  162. """
  163. Показываем окно с поражением
  164. :return:
  165. :rtype: bool
  166. """
  167. self.timer_stop()
  168. tkMessageBox.showerror(GAME_OVER_WINDOW_TITLE, GAME_OVER_MESSAGE)
  169. return False
  170.  
  171. def game_winner(self):
  172. """
  173. Показываем окно с победой
  174. :return:
  175. :rtype: bool
  176. """
  177. self.timer_stop()
  178. tkMessageBox.showinfo(WINNER_WINDOW_TITLE, WINNER_MESSAGE)
  179. return False
  180.  
  181. def grid(self):
  182. super(GUI, self).grid() # тут ошибка...
  183. #super(self).__init__(master=parent, text='inner').grid()
  184. self.tk_frame_toolbar.grid(row=0, column=0)
  185.  
  186. self.tk_frame_toolbar.rowconfigure('all', minsize=WINDOW_TOOLBAR_HEIGHT)
  187.  
  188. width_label_toolbar = (float(WINDOW_WIDTH - WINDOW_TOOLBAR_HEIGHT)) / 2.0
  189. self.tk_frame_toolbar.columnconfigure(0, minsize=width_label_toolbar - 5)
  190. self.tk_frame_toolbar.columnconfigure(1, minsize=WINDOW_TOOLBAR_HEIGHT)
  191. self.tk_frame_toolbar.columnconfigure(2, minsize=width_label_toolbar - 5)
  192.  
  193. self.tk_frame_main.grid(row=1, column=0)
  194. self.is_grid = True
  195.  
  196. def show(self):
  197. if not self.is_grid:
  198. self.grid()
  199. self.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement