class Reminder_Window(): def start_window(self): self.reminder_window = Toplevel() self.reminder_window.grab_set() self.reminder_window.title('Reminder') self.reminder_window.geometry('400x200') big_font = tkFont.Font(size=10) self.reminder_text_1 = Tkinter.Label(self.reminder_window, text='Remind me', font=big_font) self.reminder_text_2 = Tkinter.Label(self.reminder_window, \ text='day(s) before.', font=big_font) self.reminder_entry = Tkinter.Entry(self.reminder_window, width=3) self.ok_reminder_button = Tkinter.Button(self.reminder_window, text='OK', command=self.on_ok_button_press) self.back_reminder_button = Tkinter.Button(self.reminder_window, \ text='Back', command=self.on_back_button_press) self.reminder_text_1.place(x=x_reminder_text_1_location, \ y=y_reminder_texts_location) self.reminder_text_2.place(x=x_reminder_text_2_location, \ y=y_reminder_texts_location) self.reminder_entry.place(x=x_reminder_entry_location, \ y=y_reminder_entry_location) self.ok_reminder_button.place(x=x_ok_reminder_button_location, \ y=y_ok_back_reminder_button_locations) self.back_reminder_button.place(x=x_back_reminder_button_location, \ y=y_ok_back_reminder_button_locations) self.reminder_window.mainloop() def on_ok_button_press(self): entry_reminder_value = self.reminder_entry.get() try: int_entry_reminder_value = int(entry_reminder_value) #print 0 > int_entry_reminder_value, int_entry_reminder_value < 50 if 0 > int_entry_reminder_value or int_entry_reminder_value > 50: print 'hi' tkMessageBox.showinfo("Error", \ 'Invalid Entry. Please enter a number from 0-50') self.reminder_window.grab_set() self.reminder_window.lift() else: self.num_of_days_before_to_remind_int = int_entry_reminder_value self.reminder_window.destroy() except ValueError: tkMessageBox.showinfo("Error", \ 'Invalid Entry. Please enter a number from 0-50') self.reminder_window.grab_set() self.reminder_window.lift() def on_back_button_press(self): self.num_of_days_before_to_remind_int = 0 self.reminder_window.destroy()
def decide_movement(self, row, col): movement = { "PAWN": self.pawn_movement, "ROOK": self.rook_movement, "ROOK.": self.rook_movement, "KNIGHT": self.knight_movement, "KNIGHT.": self.knight_movement, "BISHOP": self.bishop_movement, "BISHOP.": self.bishop_movement, "QUEEN": self.queen_movement, "KING": self.king_movement, "pawn": self.pawn_movement, "rook": self.rook_movement, "rook.": self.rook_movement, "knight": self.knight_movement, "knight.": self.knight_movement, "bishop": self.bishop_movement, "bishop.": self.bishop_movement, "queen": self.queen_movement, "king": self.king_movement} try: self.piece = self.button_location[row, col]["text"] self.piece_color = self.button_location[row, col]["fg"] self.original_row = row self.original_col = col self.piece_image = self.button_location[row, col]["image"] if self.turn % 2 == 0: if self.piece_color == "OrangeRed": movement.get(self.piece)(row, col, color=self.piece_color) else: self.clear_board() wrong_turn_window = Toplevel() wrong_turn_window.title("Wrong Turn") wrong_turn_window.lift() label = Label(wrong_turn_window, text="It's Not Your Turn!") label.pack() if self.turn % 2 != 0: if self.piece_color == "DimGray": movement.get(self.piece)(row, col, color=self.piece_color) else: self.clear_board() wrong_turn_window = Toplevel() wrong_turn_window.title("Wrong Turn") wrong_turn_window.lift() label = Label(wrong_turn_window, text="It's Not Your Turn!") label.pack() # for clicking where there is no piece except TypeError: no_piece_window = Toplevel() no_piece_window.title("Wrong Click") no_piece_window.lift() label = Label(no_piece_window, text="There is no piece there") label.pack()
class Docview: def __init__(self, master, fn, **kwargs): self.file = fn self.widget = None self.text = Text() self.frame = master self.location = kwargs.get('location', None) self.wait = kwargs.get('wait', None) self.find = kwargs.get('find', None) self.delete_img = PhotoImage(file='delete.pbm') self.up_img = PhotoImage(file='1uparrow.pbm') self.down_img = PhotoImage(file='1downarrow.pbm') self.upbutn = Button() self.dnbutn = Button() self.deletebutn = Button() self.entry = None self.doc = '' def Search(self, pattern): ''' normal top-down search :param pattern: :return: ''' try: self.text.tag_remove('hilight', '1.0', 'end') ind = self.text.search(pattern, '1.0', stopindex="end", nocase=True) self.text.mark_set("insert", ind) self.text.see("insert") nchar = len(pattern) self.text.tag_add('hilight', ind, ind + "+{}c".format(nchar)) except: pass def RecursiveSearch(self, pattern, upward=False): ''' Search forward from current position. Search backward if upward is True. :param pattern: search pattern :param upward: reverse search if true :return: Null ''' if len(pattern) == 0: ind = '1.0' if upward else 'end' self.text.mark_set("insert", ind) self.text.see("insert") return try: insert = self.text.index("insert") if upward: point = insert + "-1c" ind = self.text.search(pattern, point, stopindex="1.0", backwards=True, nocase=True) else: point = insert + "+1c" ind = self.text.search(pattern, point, stopindex="end", nocase=True) self.text.mark_set("insert", ind) self.text.see("insert") self.text.tag_remove('hilight', '1.0', 'end') nchar = len(pattern) self.text.tag_add('hilight', ind, ind + "+{}c".format(nchar)) self.text.update() except: pass def SearchUp(self): pattern = str(self.entry.get()) self.RecursiveSearch(pattern, True) def SearchDn(self): pattern = str(self.entry.get()) self.RecursiveSearch(pattern, False) def FindEntry(self, event): '''triggered by keyrelease event in find entry box''' pattern = str(self.entry.get()) nchar = len(pattern) self.text.tag_remove('hilight', '1.0', 'end') if nchar == 0: return try: ind = self.text.search(pattern, "1.0", stopindex="end", nocase=True) self.text.mark_set("insert", ind) self.text.see("insert") self.text.tag_add('hilight', ind, ind + "+{}c".format(nchar)) self.text.update() except: pass def DeleteSearch(self): self.entry.delete(0, 'end') self.text.tag_remove('hilight', '1.0', 'end') def Popup(self): if not self.doc: with open(self.file, 'r') as fh: self.doc = fh.read() if self.widget: # widget already open if self.frame: self.widget.lift(aboveThis=self.frame) return #print 'length of doc ', len(self.doc) self.widget = Toplevel() if self.find: self.sframe = Frame(self.widget) self.sframe.pack() self.upbutn = Button(self.sframe, width=17, command=self.SearchUp, image=self.up_img) self.upbutn.pack(side='left') self.dnbutn = Button(self.sframe, width=17, command=self.SearchDn, image=self.down_img) self.dnbutn.pack(side='left') self.entry = Entry(self.sframe, width=50) self.entry.bind('<KeyRelease>', self.FindEntry) self.entry.pack(side='left') self.deletebutn = Button(self.sframe, width=17, command=self.DeleteSearch) self.deletebutn.config(image=self.delete_img) self.deletebutn.pack(side='left') width = max([len(line) for line in self.doc.split('\n')]) height = min([self.doc.count('\n') + 1, 40]) self.text = Text(self.widget, width=width, height=height) self.text.tag = self.text.tag_configure('hilight', background='#ffff00') self.text.insert("1.0", self.doc) self.text.pack() if self.location and self.frame: dx, dy = self.location w = self.text.winfo_width() h = self.text.winfo_height() x = self.frame.winfo_x() y = self.frame.winfo_y() loc = "%dx%d+%d+%d" % (600, 400, x + dx, y + dy) self.widget.geometry(loc) if self.wait: self.widget.focus_set() self.widget.grab_set() if self.frame: self.widget.transient(master=self.frame) self.widget.wait_window(self.widget) if self.frame: self.widget.lift(aboveThis=self.frame) self.widget.protocol("WM_DELETE_WINDOW", self.Kill) def Kill(self): self.widget.destroy() self.widget = None
def lift(self): Toplevel.lift(self, self.root)