def toggle_tabs_event(self, event):
if self.askyesno(
"Toggle tabs",
"Turn tabs " + ("on", "off")[self.usetabs] +
"?\nIndent width " +
("will be", "remains at")[self.usetabs] + " 8." +
"\n Note: a tab is always 8 columns",
parent=self.text):
self.usetabs = not self.usetabs
# Try to prevent inconsistent indentation.
# User must change indent width manually after using tabs.
self.indentwidth = 8
return "break"
# XXX this isn't bound to anything -- see tabwidth comments
## def change_tabwidth_event(self, event):
## new = self._asktabwidth()
## if new != self.tabwidth:
## self.tabwidth = new
## self.set_indentation_params(0, guess=0)
## return "break"
python类askyesno()的实例源码
def menu_saveThemeAs(self):
""" callback for saveAs menu item """
newTheme = tkFileDialog.askdirectory(mustexist=True, initialdir=self.themeRootPath, title='Open Theme')
if newTheme and os.path.isdir(newTheme):
if os.path.isfile(newTheme+os.path.sep+'theme.json'):
if not tkMessageBox.askyesno(title='Save theme', message='Theme exists. Overwrite?'):
return
self.saveTheme(newTheme)
def toggle_tabs_event(self, event):
if self.askyesno(
"Toggle tabs",
"Turn tabs " + ("on", "off")[self.usetabs] +
"?\nIndent width " +
("will be", "remains at")[self.usetabs] + " 8." +
"\n Note: a tab is always 8 columns",
parent=self.text):
self.usetabs = not self.usetabs
# Try to prevent inconsistent indentation.
# User must change indent width manually after using tabs.
self.indentwidth = 8
return "break"
# XXX this isn't bound to anything -- see tabwidth comments
## def change_tabwidth_event(self, event):
## new = self._asktabwidth()
## if new != self.tabwidth:
## self.tabwidth = new
## self.set_indentation_params(0, guess=0)
## return "break"
def toggle_tabs_event(self, event):
if self.askyesno(
"Toggle tabs",
"Turn tabs " + ("on", "off")[self.usetabs] +
"?\nIndent width " +
("will be", "remains at")[self.usetabs] + " 8." +
"\n Note: a tab is always 8 columns",
parent=self.text):
self.usetabs = not self.usetabs
# Try to prevent inconsistent indentation.
# User must change indent width manually after using tabs.
self.indentwidth = 8
return "break"
# XXX this isn't bound to anything -- see tabwidth comments
## def change_tabwidth_event(self, event):
## new = self._asktabwidth()
## if new != self.tabwidth:
## self.tabwidth = new
## self.set_indentation_params(0, guess=0)
## return "break"
def yesno(self, heading, line1, line2=None, line3=None, nolabel=None, yeslabel=None):
"""Show a dialog 'YES/NO'.
heading: string or unicode - dialog heading.
line1: string or unicode - line #1 text.
line2: string or unicode - line #2 text.
line3: string or unicode - line #3 text.
nolabel: label to put on the no button.
yeslabel: label to put on the yes button.
Note:
Returns True if 'Yes' was pressed, else False.
Example:
dialog = xbmcgui.Dialog()
ret = dialog.yesno('XBMC', 'Do you want to exit this script?')
"""
root = self.root
prompt = [elem for elem in [line1, line2, line3] if elem]
message = '\n'.join(prompt)
ans = tkMessageBox.askyesno(heading, message, parent=root)
root.destroy()
return ans[0]
def on_exit(self):
#When you click to exit, this function is called
if tkMessageBox.askyesno("Exit", "Do you want to quit the application?"):
self.store_para(gui_vars.saveParaPath, gui_vars.configName)
print 'Close Main Thread...'
self.main_run_judge= False
self.ArdMntr.exit= True
self.scanning_judge= False
#self.CamMntr.stop_clean_buffer()
#del(self.thread_main)
self.thread_main.exit()
print 'Close Arduino Thread...'
#del(self.CamMntr.thread_clean_buffer)
#print 'Close Scanning Thread...'
#del(self.thread_scanning)
print self.MaxSpeed
self.CamMntr.release_cap()
self.root.destroy()
def ss_choose_outdir(self):
Paths.ss_outpath = P3F.ig_choose_output_folder(
self.page3,
self.outdir_entry
)
if Paths.ss_outpath != "":
rly = tkMessageBox.askyesno(
"Warning",
"All files in "+Paths.ss_outpath+" will be deleted. Continue?"
)
if rly is True:
self.autoscore_button.configure(state="normal")
self.simulation_button.configure(state="normal")
else:
self.outdir_entry.configure(entry_state="normal")
self.autoscore_button.configure(state="disabled")
self.simulation_button.configure(state="disabled")
Paths.ss_outpath = ""
else:
self.outdir_entry.configure(entry_state="normal")
Paths.ss_outpath = ""
self.autoscore_button.configure(state="disabled")
self.simulation_button.configure(state="disabled")
def yesNoBox(self, title, message):
self.topLevel.update_idletasks()
return MessageBox.askyesno(title, message)
def deleteSSL(self):
resposnse = messagebox.askyesno(title="Do you want to continue?",
message="Are you sure that you want to delete " + self.certsList.get(ACTIVE))
if resposnse == True:
try:
self.iamClient.delete_server_certificate(ServerCertificateName=self.certsList.get(ACTIVE))
self.message.info("Deleting SSL", "SSL deleted")
self.getSSLList()
except:
self.message.error("Something happened", "There was an error\n" + str(sys.exc_info()[0]))
# Function to set the AWS profile from input box
def yesNoBox(self, title, message):
self.topLevel.update_idletasks()
return MessageBox.askyesno(title, message)
def MsgBox(title, text, style):
box = [
msg.showinfo, msg.showwarning, msg.showerror,
msg.askquestion, msg.askyesno, msg.askokcancel, msg.askretrycancel,
];
tk.Tk().withdraw(); #Hide Main Window.
if style in range(7):
return box[style](title, text)
def MsgBox(title, text, style):
box = [
msg.showinfo, msg.showwarning, msg.showerror,
msg.askquestion, msg.askyesno, msg.askokcancel, msg.askretrycancel,
];
tk.Tk().withdraw(); #Hide Main Window.
if style in range(7):
return box[style](title, text)
def ask_yes_no(self, title, message):
return messagebox.askyesno(title, message)
def ask_yes_no(self, title, message):
return messagebox.askyesno(title, message)
def saveit(self):
doit = tkMessageBox.askyesno("save gamma curve", "overwrite?")
if doit:
keys = [ [self.gamma_red[x][0], (self.gamma_red[x][1], self.gamma_green[x][1], self.gamma_blue[x][1])] for x in range(self.num_ctrl)]
grad = { 'gamma':keys}
with open('gamma_grad.json', 'w') as outfile:
json.dump(grad, outfile)
print 'written.'
def menu_overrideTheme(self):
""" callback for save menu item """
if self.themePath == "":
self.menu_saveThemeAs()
return
themebase, themename = os.path.split(self.themePath)
if not tkMessageBox.askyesno(title='Save theme', message='Overwrite existing theme "%s"?'%themename):
return
self.saveTheme(self.themePath)
def close_window(self):
yes = tkmessage.askyesno("Exit", "Do you really want to quit?")
if yes:
self.close()
def DeleteCustomKeys(self):
keySetName=self.customKeys.get()
delmsg = 'Are you sure you wish to delete the key set %r ?'
if not tkMessageBox.askyesno(
'Delete Key Set', delmsg % keySetName, parent=self):
return
self.DeactivateCurrentConfig()
#remove key set from config
idleConf.userCfg['keys'].remove_section(keySetName)
if keySetName in self.changedItems['keys']:
del(self.changedItems['keys'][keySetName])
#write changes
idleConf.userCfg['keys'].Save()
#reload user key set list
itemList = idleConf.GetSectionList('user', 'keys')
itemList.sort()
if not itemList:
self.radioKeysCustom.config(state=DISABLED)
self.optMenuKeysCustom.SetMenu(itemList, '- no custom keys -')
else:
self.optMenuKeysCustom.SetMenu(itemList, itemList[0])
#revert to default key set
self.keysAreBuiltin.set(idleConf.defaultCfg['main'].Get('Keys', 'default'))
self.builtinKeys.set(idleConf.defaultCfg['main'].Get('Keys', 'name'))
#user can't back out of these changes, they must be applied now
self.SaveAllChangedConfigs()
self.ActivateConfigChanges()
self.SetKeysType()
def DeleteCustomTheme(self):
themeName = self.customTheme.get()
delmsg = 'Are you sure you wish to delete the theme %r ?'
if not tkMessageBox.askyesno(
'Delete Theme', delmsg % themeName, parent=self):
return
self.DeactivateCurrentConfig()
#remove theme from config
idleConf.userCfg['highlight'].remove_section(themeName)
if themeName in self.changedItems['highlight']:
del(self.changedItems['highlight'][themeName])
#write changes
idleConf.userCfg['highlight'].Save()
#reload user theme list
itemList = idleConf.GetSectionList('user', 'highlight')
itemList.sort()
if not itemList:
self.radioThemeCustom.config(state=DISABLED)
self.optMenuThemeCustom.SetMenu(itemList, '- no custom themes -')
else:
self.optMenuThemeCustom.SetMenu(itemList, itemList[0])
#revert to default theme
self.themeIsBuiltin.set(idleConf.defaultCfg['main'].Get('Theme', 'default'))
self.builtinTheme.set(idleConf.defaultCfg['main'].Get('Theme', 'name'))
#user can't back out of these changes, they must be applied now
self.SaveAllChangedConfigs()
self.ActivateConfigChanges()
self.SetThemeType()
def DeleteCustomKeys(self):
keySetName=self.customKeys.get()
delmsg = 'Are you sure you wish to delete the key set %r ?'
if not tkMessageBox.askyesno(
'Delete Key Set', delmsg % keySetName, parent=self):
return
self.DeactivateCurrentConfig()
#remove key set from config
idleConf.userCfg['keys'].remove_section(keySetName)
if keySetName in self.changedItems['keys']:
del(self.changedItems['keys'][keySetName])
#write changes
idleConf.userCfg['keys'].Save()
#reload user key set list
itemList = idleConf.GetSectionList('user', 'keys')
itemList.sort()
if not itemList:
self.radioKeysCustom.config(state=DISABLED)
self.optMenuKeysCustom.SetMenu(itemList, '- no custom keys -')
else:
self.optMenuKeysCustom.SetMenu(itemList, itemList[0])
#revert to default key set
self.keysAreBuiltin.set(idleConf.defaultCfg['main'].Get('Keys', 'default'))
self.builtinKeys.set(idleConf.defaultCfg['main'].Get('Keys', 'name'))
#user can't back out of these changes, they must be applied now
self.SaveAllChangedConfigs()
self.ActivateConfigChanges()
self.SetKeysType()
def DeleteCustomTheme(self):
themeName = self.customTheme.get()
delmsg = 'Are you sure you wish to delete the theme %r ?'
if not tkMessageBox.askyesno(
'Delete Theme', delmsg % themeName, parent=self):
return
self.DeactivateCurrentConfig()
#remove theme from config
idleConf.userCfg['highlight'].remove_section(themeName)
if themeName in self.changedItems['highlight']:
del(self.changedItems['highlight'][themeName])
#write changes
idleConf.userCfg['highlight'].Save()
#reload user theme list
itemList = idleConf.GetSectionList('user', 'highlight')
itemList.sort()
if not itemList:
self.radioThemeCustom.config(state=DISABLED)
self.optMenuThemeCustom.SetMenu(itemList, '- no custom themes -')
else:
self.optMenuThemeCustom.SetMenu(itemList, itemList[0])
#revert to default theme
self.themeIsBuiltin.set(idleConf.defaultCfg['main'].Get('Theme', 'default'))
self.builtinTheme.set(idleConf.defaultCfg['main'].Get('Theme', 'name'))
#user can't back out of these changes, they must be applied now
self.SaveAllChangedConfigs()
self.ActivateConfigChanges()
self.SetThemeType()
def issuedMatch(self):
info = self.host.pool.queue[0]
ok = askyesno('Challenge',
'There is a challenge %s!' % str(info))
if ok:
self.acceptMatch()
else:
self.refuseMatch()
def issuedTakeOneBack(self):
info = self.host.pool.queue[0]
ok = askyesno('Challenge',
'Your opponent requested a take one back ! Accept it?')
if ok:
self.acceptTakeOneBack()
else:
self.refuseTakeOneBack()
def issuedTakeTwoBack(self):
info = self.host.pool.queue[0]
ok = askyesno('Challenge',
'Your opponent requested a take two back ! Accept it?')
if ok:
self.acceptTakeTwoBack()
else:
self.refuseTakeTwoBack()
def launch_pymod_update(self):
# Gets the latest release number from network.
try:
update_found = pmup.check_for_updates(self.pymod_version, self.pymod_revision)
except Exception, e:
self.show_error_message("Connection Error", "Can not obtain the latest PyMod version number beacause of the following error: '%s'" % e)
return False
if not update_found:
self.show_warning_message("Update Canceled", "Your PyMod version (%s.%s) is already up to date." % (self.pymod_version, self.pymod_revision))
return False
# Ask for update confirmation.
title = "Update PyMod?"
message = "Would you like to update your current PyMod version (%s.%s) to the latest stable one available online (%s)? You will need to restart PyMOL in order to use the new version." % (self.pymod_version, self.pymod_revision, update_found)
answer = tkMessageBox.askyesno(title, message, parent=self.main_window)
if not answer:
return False
# Fetches the latest stable version files of PyMod.
try:
plugin_zipfile_temp_name = pmup.fetch_plugin_zipfile()
except Exception, e:
self.show_error_message("Connection Error", "Can not fetch the latest PyMod files beacause of the following error: '%s'" % e)
return False
if not plugin_zipfile_temp_name:
return False
# Installs the new PyMod version.
pymod_plugin_dir = os.path.dirname(os.path.dirname(__file__))
update_results = pmup.update_pymod(plugin_zipfile_temp_name, pymod_plugin_dir)
if update_results[0]:
self.show_info_message("Update Successful", "PyMod has been updated to version %s. Please restart PyMOL in order to use the updated PyMod version." % (update_found))
else:
self.show_error_message("Update Failed", update_results[1])
def confirm_close(self, parent=None):
"""
Asks confirmation when the main window is closed by the user.
"""
parent_window = None
if parent == None:
parent_window = self.main_window
else:
parent_window = parent
answer = tkMessageBox.askyesno(message="Are you really sure you want to exit PyMod?", title="Exit PyMod?", parent=parent_window)
if answer:
self.main_window.destroy()
def begin_new_project_from_main_menu(self):
answer = tkMessageBox.askyesno(message="Are you really sure you want to begin a new PyMod project? If you do not save your current project, its data will be permanently lost.", title="Begin New Project?", parent=self.main_window)
if not answer:
return None
self.start_new_project()
##################
# Save projects. #
##################
def sequence_save(self, element):
"""
Save a single sequence to a file.
"""
remove_indels_choice = False
if "-" in element.my_sequence:
remove_indels_choice = tkMessageBox.askyesno(message="Would you like to remove indels from the sequence when saving it to a file?", title="Save File", parent=self.main_window)
filepath=asksaveasfilename(filetypes=[("fasta","*.fasta")],parent=self.main_window)
if not filepath == "":
dirpath = os.path.dirname(filepath)
filename = os.path.splitext(os.path.basename(filepath))[0]
self.build_sequences_file([element], filename, file_format="fasta", remove_indels=remove_indels_choice, use_structural_information=False, new_directory=dirpath)
def delete_alignment_from_the_left_pane(self):
title = "Delete Cluster?"
message = "Are you sure you want to delete %s?" % (self.get_cluster().my_header)
choice = tkMessageBox.askyesno(message=message, title=title, parent=pymod.main_window)
if choice:
pymod.delete_alignment(self.get_cluster())
pymod.gridder()
def AskReplace():
if tkMessageBox.askyesno("Replace save file?",
"Do you want to replace your existing save file?\nBackup of original will be created.") == True:
replace_path = "%s_%d" % (ent_SaveFile.get(), int(time.time()))
os.rename(ent_SaveFile.get(), replace_path)
DebugPrint(" + Backed up save file to %s" % (replace_path))
os.rename(ent_OutputFile.get(), ent_SaveFile.get())
DebugPrint(" + Replace old save file with new save file")
# Function to alphabetize wrestler list