def __init__(self, master, status, playername, game=None, grid_view=None): """Constructor Parameters: master (tk.Tk|tk.Frame): The parent widget. status (StatusBar): The StatusBar instance the game is linked to game (model.AbstractGame): The game to play. Defaults to a game_regular.RegularGame. playername (str): Name of player grid_view (view.GridView): The view to use for the game. Optional. Raises: ValueError: If grid_view is supplied, but game is not. """ super().__init__(master, game, grid_view) self.master = master self._status = status self.playername = playername self._status.set_gamemode(game.get_name()) self._grid_view.config(bg="white") self.num_lights = tk.IntVar() self.num_lights.set(1) self.lightning_on = False self.counter = 0 self.cant_acivate_error = messagebox.Message( message="Cannot activate position!") self.game_over_error = messagebox.Message(message="Game over!")
def set_up2(self): if self.en1.get() == 'luxshare': self.F5.destroy() F6 = Frame(master=self.master, heigh=220, width=400, borderwidth=3, relief='groove') b1 = Button(master=F6, text='确认', width=10, command=lambda: self.port_choose(F6)).place(x=80, y=175) l1 = Label(F6, text='Link times:').place(x=10, y=145) l1 = Label(F6, text='Play times:').place(x=200, y=145) l2 = Label(F6, text='Sensor Lower:').place(x=10, y=110) l3 = Label(F6, text='Sensor Upper:').place(x=200, y=110) en1 = Entry(F6, width=8, textvariable=self.spec_lo) en2 = Entry(F6, width=8, textvariable=self.spec_up) en3 = Entry(F6, width=8, textvariable=self.link_times) en4 = Entry(F6, width=8, textvariable=self.paly_times) en3.place(x=110, y=145) en4.place(x=300, y=145) en1.place(x=110, y=110) en2.place(x=300, y=110) b2 = Button(master=F6, text='取消', width=10, command=lambda: F6.destroy()).place(x=220, y=175) self.lb11 = Listbox(master=F6, heigh=4, width=35, selectmode='BROWSE') self.auto_choose_port() for i in self.ports: self.lb11.insert(END, i) self.lb11.place(x=50, y=10) F6.place(x=160, y=00, ) else: m1 = mb.Message(self.master, message='Wrong Passwod ').show()
def check_win(player): print('check who win') cnt = 0 # win_rows for x in range(scale_size): x_coo = [] y_coo = [] cnt = 0 for y in range(scale_size): if field[y][x]['text'] == player: cnt += 1 x_coo.append(y) y_coo.append(x) if cnt == scale_size: for i in range(scale_size): field[x_coo[i]][y_coo[i]]['background'] = 'grey' messagebox.Message('WInner', 'Winner player ' + player + ' !!!') #win columns for x in range(scale_size): x_coo = [] y_coo = [] cnt = 0 for y in range(scale_size): if field[x][y]['text'] == player: cnt += 1 x_coo.append(x) y_coo.append(y) if cnt == scale_size: for i in range(scale_size): field[x_coo[i]][y_coo[i]]['background'] = 'grey' messagebox.showinfo('WInner', 'Winner player:' + player + ' !!!') x_coo = [] y_coo = [] cnt = 0 #win main diagonal for x in range(scale_size): if field[x][x]['text'] == player: cnt += 1 x_coo.append(x) y_coo.append(x) if cnt == scale_size: for i in range(scale_size): field[x_coo[i]][y_coo[i]]['background'] = 'grey' messagebox.showinfo('WInner', 'Winner player:' + player + ' !!!') x_coo = [] y_coo = [] cnt = 0 #win secondary diagonal for x in range(scale_size): if field[x][scale_size - x - 1]['text'] == player: cnt += 1 x_coo.append(x) y_coo.append(scale_size - x - 1) if cnt == scale_size: for i in range(scale_size): field[x_coo[i]][y_coo[i]]['background'] = 'grey' messagebox.showinfo('WInner', 'Winner player:' + player + ' !!!')
def newfile(): tmsg.Message() ans = tmsg.askquestion("save it", "do you want to save changes ?") if ans == "yes": savefile() # tmsg._show("save changes","hello") sagar.title("untitled") textarea.delete(1.0, END)
def listen_keyboard(event): if event.keysym in allowed_symbols: read_keys(allowed_symbols.get(event.keysym)) elif event.keysym == 'Escape': win_calc.quit() else: messagebox.Message('Wrong') print(event.keysym)
def ask_save_dialog(self): msg = "Source Must Be Saved\n" + 5 * ' ' + "OK to Save?" mb = tkMessageBox.Message(title="Save Before Run or Check", message=msg, icon=tkMessageBox.QUESTION, type=tkMessageBox.OKCANCEL, default=tkMessageBox.OK, parent=self.editwin.text) return mb.show()
def print_window(self, event): m = tkMessageBox.Message(title="Print", message="Print to Default Printer", icon=tkMessageBox.QUESTION, type=tkMessageBox.OKCANCEL, default=tkMessageBox.OK, master=self.text) reply = m.show() if reply != tkMessageBox.OK: self.text.focus_set() return "break" tempfilename = None saved = self.get_saved() if saved: filename = self.filename # shell undo is reset after every prompt, looks saved, probably isn't if not saved or filename is None: (tfd, tempfilename) = tempfile.mkstemp(prefix='IDLE_tmp_') filename = tempfilename os.close(tfd) if not self.writefile(tempfilename): os.unlink(tempfilename) return "break" platform = os.name printPlatform = 1 if platform == 'posix': #posix platform command = idleConf.GetOption('main', 'General', 'print-command-posix') command = command + " 2>&1" elif platform == 'nt': #win32 platform command = idleConf.GetOption('main', 'General', 'print-command-win') else: #no printing for this platform printPlatform = 0 if printPlatform: #we can try to print for this platform command = command % filename pipe = os.popen(command, "r") # things can get ugly on NT if there is no printer available. output = pipe.read().strip() status = pipe.close() if status: output = "Printing failed (exit status 0x%x)\n" % \ status + output if output: output = "Printing command: %s\n" % repr(command) + output tkMessageBox.showerror("Print status", output, master=self.text) else: #no printing for this platform message = "Printing is not enabled for this platform: %s" % platform tkMessageBox.showinfo("Print status", message, master=self.text) if tempfilename: os.unlink(tempfilename) return "break"
def saveGame(data, method): ''' let the player decide if save the game or not. :param data: the game current data to save :param method: a function object to indicate how to save the game. :return: None ''' choice = messagebox.askyesno('save the game', 'save?') if choice: method(data) messagebox.Message(title="save", message="save success").show()
def choose_file(): root.filename = filedialog.askopenfilename( initialdir="Pictures", title="Select a file", filetypes=(("csv files", "*.csv"), ("excel files", "*.xlsx"), ("all files", "*.*"))) if root.filename.split('.')[-1] == 'csv': excelconv(root.filename) elif root.filename.split('.')[-1] == 'xlsx': csvconv(root.filename) else: messagebox.Message(master=root, message="Invalid File Format")
def refresh_everything(self): try: while True: command = self.q_display.get(0) if command[0] == 'p': row, column, player= command[1:] self.graphic_board[row][column]['text'] = player elif command[0] == 'end_game': messagebox.Message(message='Winner is %s' % command[1]).show() self.reset() except queue.Empty: pass self.after(100, self.refresh_everything)
def choose_db(self): fname = askopenfilename(filetypes=(("scenario", "*.db"), ("All files", "*.*")), initialdir='~/PycharmProjects/ard/') base=fname.split('/') self.current_name_db = fname self.window_db.insert(END, base[-1] + '\n') messagebox.Message('') messagebox.showinfo("база данных выбрана", " текущая база данных \n " " {}".format(base[-1])) self.path = self.current_name_db self.request_butt.config(text='текущая база данных : {}'.format(base[-1]))
def save_as(): global file file = log.asksaveasfilename(initialfile="Untitled.txt", defaultextension=".txt", filetypes=[("All Files", "*.*"), ("Text Document", "*.txt")]) if file == "": file = None else: with open(file, "w") as f: f.write(note.get(1.0, END)) window.title(os.path.basename(file) + " - Notepad") msg.Message("File Saved")
def maybesave(self): if self.get_saved(): return "yes" message = "Do you want to save %s before closing?" % ( self.filename or "this untitled document") m = tkMessageBox.Message(title="Save On Close", message=message, icon=tkMessageBox.QUESTION, type=tkMessageBox.YESNOCANCEL, master=self.text) reply = m.show() if reply == "yes": self.save(None) if not self.get_saved(): reply = "cancel" self.text.focus_set() return reply
def _prompt_cb(message_type: MessageType, message: str, responses: PromptResponse) -> bool: options: Dict[str, str] = {} # needed to prevent UI deadlock with TK sleep(0.01) options["icon"] = message_type.get_icon() options["type"] = responses.get_messagebox_response() options["title"] = "" options["message"] = f"""{message} Do you want to do this?""" ret = messagebox.Message(**options).show() ret = str(ret) if ret == messagebox.CANCEL: return None if ret == messagebox.OK: return True return ret == messagebox.YES
def launcher(self, select=False): # If location not found from default place, ask via dialog box # Once login pops up, grab that window if not select: print('Opening Launcher...') # Dialog Box! root = Tk() root.iconify() # Make foreground - root.lift() or... root.attributes("-topmost", True) prompt = 'Do not touch other programs until we are logged in!' root.after(3000, root.destroy) messagebox.Message(title="Warning!", message=prompt, master=root).show() # Must specify CWD so that our launcher doesnt download patch files # in our script folder # shell=True because windows. self.game = sp.Popen("Launcher.exe", stdout=sp.PIPE, stderr=sp.PIPE, shell=True, cwd=self.file_path) self.wait_hwnd("Toontown Rewritten Launcher") else: # Dialog box for selecting a file to open. print('Please select file to open!') root = tk.Tk() root.withdraw() self.file_path = filedialog.askopenfilename() # self.file_paths.rsplit('/', 1)[0]: # Separates string into array before last backslash self.game = sp.Popen(self.file_path, stdout=sp.PIPE, stderr=sp.PIPE, shell=True, cwd=self.file_paths.rsplit('/', 1)[0]) # A less direct approach to getting the window time.sleep(1) self.hwnd = win32gui.GetForegroundWindow()
def initwidgets(self): # frame self.panel = tkinter.Frame(self.window) # camera self.vid = MyVideoCapture(self.video_source) # Tk Image self.preview = PIL.ImageTk.PhotoImage(file=self.NOFILEIMAGE_DIR) # canvas self.canvas = tkinter.Canvas(self.window, width=self.vid.width, height=self.vid.height) self.preview_canvas = tkinter.Canvas(self.window, width=self.vid.width, height=self.vid.height) self.preview_canvas.create_image(0, 0, image=self.preview, anchor=tkinter.NW) # message box self.messagebox = messagebox.Message() # label self.lb = tkinter.Label(self.panel, text="Result", textvariable=self.result, font=("arial", 15)) # button self.btn_snapshot = tkinter.Button(self.panel, width=10, height=1, text="Snapshot", command=self.snapshot, font=("arial", 15), bg='green', fg='white') self.btn_send = tkinter.Button(self.panel, width=10, height=1, text="Google API", command=self.result_from_google, font=("arial", 15), bg='blue', fg='white') self.btn_fee = tkinter.Button(self.panel, width=10, height=1, text="Checkout", command=self.fee, font=("arial", 15), bg='green', fg='white') self.btn_quit = tkinter.Button(self.panel, width=10, height=1, text="QUIT", command=self.window.destroy, font=("arial", 15), bg='red', fg='white') self.btn_tesseract = tkinter.Button(self.panel, width=10, height=1, text='tesseract(off)', command=self.tesseract_enable, font=("arial", 15), bg='orange') self.btn_charRecognition = tkinter.Button( self.panel, width=20, height=1, text='charRecognition(off)', command=self.charRecognition_enable, font=("arial", 15), bg='orange') self.btn_images = tkinter.Button(self.panel, width=10, height=1, text="Images", command=self.image_window, font=("arial", 15), bg='green', fg='white') # combobox self.cb = tkinter.ttk.Combobox(self.window, width=58, textvariable=self.fileName) # pre-process self.makeimageslist() # layout self.canvas.grid(column=0, row=0, sticky='w') self.preview_canvas.grid(column=1, row=0, sticky='e') self.cb.grid(column=0, row=1, sticky='ne') self.panel.grid(column=1, row=1, sticky='nw') # panel self.lb.grid(column=0, row=0) self.btn_tesseract.grid(column=0, row=1) self.btn_snapshot.grid(column=0, row=2) self.btn_send.grid(column=0, row=3) self.btn_charRecognition.grid(column=1, row=1) self.btn_images.grid(column=1, row=2, sticky='w') self.btn_fee.grid(column=1, row=3, sticky='w') self.btn_quit.grid(column=1, row=4, sticky='w')
def quitFunc(): messagebox.Message("Quit the game!")
def detail(element, name,no,mass,bl,pr,yr): msg = messagebox.Message(root, message=f"Symbol: {element}\nAtomic Number: {no}\nElement: {name}\nAtomic Mass: {mass}\nBlock: {bl}\nProperty: {pr}\nDiscovery Year: {yr}" ) msg.show()