def _get_export_file_name(self):
sel = gtk.FileChooserDialog("Save...", self.canvas.get_toplevel(),
gtk.FILE_CHOOSER_ACTION_SAVE,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK))
sel.set_default_response(gtk.RESPONSE_OK)
sel.set_local_only(True)
sel.set_do_overwrite_confirmation(True)
sel.set_current_name("Unnamed.pdf")
filter = gtk.FileFilter()
filter.set_name("Embedded PostScript")
filter.add_mime_type("image/x-eps")
sel.add_filter(filter)
filter = gtk.FileFilter()
filter.set_name("Portable Document Graphics")
filter.add_mime_type("application/pdf")
sel.add_filter(filter)
filter = gtk.FileFilter()
filter.set_name("Scalable Vector Graphics")
filter.add_mime_type("image/svg+xml")
sel.add_filter(filter)
resp = sel.run()
if resp != gtk.RESPONSE_OK:
sel.destroy()
return None
file_name = sel.get_filename()
sel.destroy()
return file_name
python类RESPONSE_OK的实例源码
def select_folder(self, event):
dialog_select_folder = gtk.FileChooserDialog()
dialog_select_folder.set_title("Export To")
dialog_select_folder.set_transient_for(self)
dialog_select_folder.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)
dialog_select_folder.set_current_folder(self.entry_selected_folder.get_text())
response = dialog_select_folder.run()
if response == gtk.RESPONSE_OK:
self.entry_selected_folder.set_text(dialog_select_folder.get_filename())
dialog_select_folder.destroy()
def select_file(self, event, entry_filepath):
dialog_select_folder = gtk.FileChooserDialog()
dialog_select_folder.set_title("Select File")
dialog_select_folder.set_transient_for(self)
dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)
dialog_select_folder.set_filename(entry_filepath.get_text())
response = dialog_select_folder.run()
if response == gtk.RESPONSE_OK:
entry_filepath.set_text(dialog_select_folder.get_filename())
dialog_select_folder.destroy()
def select_folder(self, event, entry_filepath):
dialog_select_folder = gtk.FileChooserDialog()
dialog_select_folder.set_title("Select Folder")
dialog_select_folder.set_transient_for(self)
dialog_select_folder.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
dialog_select_folder.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)
dialog_select_folder.set_current_folder(entry_filepath.get_text())
response = dialog_select_folder.run()
if response == gtk.RESPONSE_OK:
entry_filepath.set_text(dialog_select_folder.get_filename())
dialog_select_folder.destroy()
def run(self):
result = super(EntryDialog, self).run()
if result == gtk.RESPONSE_OK:
text = self.entry.get_text()
else:
text = None
return text
def run(self):
result = super(FolderDialog, self).run()
if result == gtk.RESPONSE_OK:
text = self.fcb1.get_filename()
else:
text = None
return text
def openFile(self, *args):
if (not self.getModified()) or self.ask("There are unsaved files.\nContinue?"):
fn = gtk.FileChooserDialog(title="Save File",
action=gtk.FILE_CHOOSER_ACTION_OPEN,
buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))
_filter = gtk.FileFilter()
_filter.set_name("Micro:Pi Files")
_filter.add_pattern("*.%s" % SETTINGS['fileExtention'])
fn.add_filter(_filter)
_filter = gtk.FileFilter()
_filter.set_name("All Files")
_filter.add_pattern("*")
fn.add_filter(_filter)
fn.show()
resp = fn.run()
if resp == gtk.RESPONSE_OK:
try:
#text = open(fn.get_filename()).read()
#try:
#d = text.replace("\n", "")
#d = base64.b64decode(d)
#data = pickle.loads(d)
#except:
#data = pickle.loads(text)
data = self.loadFilesFromFile(fn.get_filename())
mw = MainWin(data)
yes = True
mw.saveLocation = fn.get_filename()
mw.setSaved()
OPENWINDOWS.append(mw)
except Exception as e:
yes = False
fn.destroy()
if resp == gtk.RESPONSE_OK and not yes:
self.message("File is not a Micro:Pi File")
def saveAs(self, *args):
self.saveInternalOpenFiles()
fn = gtk.FileChooserDialog(title="Save File As",
action=gtk.FILE_CHOOSER_ACTION_SAVE,
buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK))
_filter = gtk.FileFilter()
_filter.set_name("Micro:Pi Files")
_filter.add_pattern("*.%s" % SETTINGS['fileExtention'])
fn.add_filter(_filter)
_filter = gtk.FileFilter()
_filter.set_name("All Files")
_filter.add_pattern("*")
fn.add_filter(_filter)
fn.show()
resp = fn.run()
#files = []
#for f in self.notebook:
#fin = self.notebook.get_tab_label(f).get_children()[0].get_label()
#tb = f.get_child().get_buffer()
#txt = tb.get_text(*tb.get_bounds())
#files.append([fin, txt])
#data = base64.b64encode(pickle.dumps(files))
#data = "".join(data[i:i+64]+"\n" for i in xrange(0, len(data), 64))
if resp == gtk.RESPONSE_OK:
fp = fn.get_filename()
if fp[-(len(SETTINGS["fileExtention"])+1):] != "." + SETTINGS["fileExtention"]:
fp += "." + SETTINGS["fileExtention"]
#open(fp, 'w').write(data)
self.saveLocation = fp
self.save()
self.setSaved()
fn.destroy()
def run(self):
result = super(SettingsDialog, self).run()
if result == gtk.RESPONSE_OK:
SETTINGS["quickstart"] = self.s1.get_active()
SETTINGS["theme"] = "dark" if self.rb2.get_active() else "light"
SETTINGS["mbitLocation"] = self.fcb1.get_filename() if self.fcb1.get_filename() else SETTINGS["mbitLocation"]
saveSettings()
if SETTINGS['theme'] == 'dark':
colour = gtk.gdk.color_parse(DARKCOL)
else:
colour = gtk.gdk.color_parse(LIGHTCOL)
for w in OPENWINDOWS:
w.window.modify_bg(gtk.STATE_NORMAL, colour)
mgr = gtkSourceView.style_scheme_manager_get_default()
w.style_scheme = mgr.get_scheme('tango' if SETTINGS['theme']=='light' else 'oblivion')
for f in w.notebook:
f.get_child().props.buffer.set_style_scheme(w.style_scheme)
w.serialConsole.window.modify_bg(gtk.STATE_NORMAL, colour)
if SENDIMAGE: w.serialConsole.imageCreator.window.modify_bg(gtk.STATE_NORMAL, colour)
w.serialConsole.consoleBody.props.buffer.set_style_scheme(w.style_scheme)
w.consoleBody.props.buffer.set_style_scheme(w.style_scheme)
self.destroy()
def get_url_from_chooser(self):
self.gui_url_chooser.set_uri(self.preferences["uri"])
self.gui_url_chooser.show()
r = self.gui_url_chooser.run()
self.gui_url_chooser.hide()
if r == gtk.RESPONSE_OK:
t = self.gui_url_chooser.get_uri()
self.preferences["uri"] = t
return t
else:
self.gui_url_chooser.set_uri(self.preferences["uri"])
return None
# get_url_from_chooser()
def _on_loginDialog_response(self, widget, response):
handlers = {gtk.RESPONSE_NONE: self._windowClosed,
gtk.RESPONSE_DELETE_EVENT: self._windowClosed,
gtk.RESPONSE_OK: self._doLogin,
gtk.RESPONSE_CANCEL: self._cancelled}
handler = handlers.get(response)
if handler is not None:
handler()
else:
log.msg("Unexpected dialog response %r from %s" % (response,
widget))
def openFile(self, widget=None, default=False):
"""Reads from a config file. If default=True, open the tint2 default config."""
self.new()
if not default:
chooser = gtk.FileChooserDialog("Open Config File", self, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
chooser.set_default_response(gtk.RESPONSE_OK)
if self.curDir != None:
chooser.set_current_folder(self.curDir)
chooserFilter = gtk.FileFilter()
chooserFilter.set_name("All files")
chooserFilter.add_pattern("*")
chooser.add_filter(chooserFilter)
chooser.show()
response = chooser.run()
if response == gtk.RESPONSE_OK:
self.filename = chooser.get_filename()
self.curDir = os.path.dirname(self.filename)
else:
chooser.destroy()
return
chooser.destroy()
else:
self.filename = os.path.expandvars("$HOME/.config/tint2/tint2rc")
self.curDir = os.path.expandvars("$HOME/.config/tint2")
self.readTint2Config()
self.generateConfig()
self.updateStatusBar()
def saveAs(self, widget=None, event=None):
"""Prompts the user to select a file and then saves the generated config file."""
self.generateConfig()
chooser = gtk.FileChooserDialog("Save Config File As...", self, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK))
chooser.set_default_response(gtk.RESPONSE_OK)
if self.curDir != None:
chooser.set_current_folder(self.curDir)
chooserFilter = gtk.FileFilter()
chooserFilter.set_name("All files")
chooserFilter.add_pattern("*")
chooser.add_filter(chooserFilter)
chooser.show()
response = chooser.run()
if response == gtk.RESPONSE_OK:
self.filename = chooser.get_filename()
if os.path.exists(self.filename):
overwrite = confirmDialog(self, "This file already exists. Overwrite this file?")
if overwrite == gtk.RESPONSE_YES:
self.writeFile()
chooser.destroy()
return True
else:
self.filename = None
chooser.destroy()
return False
else:
self.writeFile()
chooser.destroy()
return True
else:
self.filename = None
chooser.destroy()
return False
def browseDirectory(self, sender, dirPathFunc):
fd = gtk.FileChooserDialog(title='Choose directory to share...', action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OK,gtk.RESPONSE_OK))
fd.set_default_response(gtk.RESPONSE_OK)
path = dirPathFunc().strip()
if len(path):
fd.set_current_folder(path)
response = fd.run()
if response == gtk.RESPONSE_OK:
self.entryDir.set_text(fd.get_filename())
fd.destroy()
def create_M_file() :
p = os.path.join(NCAM_DIR, NGC_DIR, 'M123')
with open(p, 'wb') as f :
f.write('#!/usr/bin/env python\n# coding: utf-8\n')
f.write("import gtk\nimport os\nimport pygtk\npygtk.require('2.0')\nfrom gtk import gdk\n\n")
f.write("fname = '%s'\n" % os.path.join(NCAM_DIR, CATALOGS_DIR, 'no_skip_dlg.conf'))
f.write('if os.path.isfile(fname) :\n exit(0)\n\n')
f.write("msg = '%s'\n" % _('Stop LinuxCNC program, toggle the shown button, then restart'))
f.write("msg1 = '%s'\n" % _('Skip block not active'))
f.write("icon_fname = '%s'\n\n" % os.path.join(NCAM_DIR, GRAPHICS_DIR, 'skip_block.png'))
f.write('dlg = gtk.MessageDialog(parent = None, flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_NONE, message_format = msg1)\n\n')
f.write("dlg.set_title('NativeCAM')\ndlg.format_secondary_markup(msg)\n\n")
f.write('dlg.set_image(gtk.Image())\n')
f.write('dlg.get_image().set_from_pixbuf(gdk.pixbuf_new_from_file_at_size(icon_fname, 80, 80))\n\n')
f.write('cb = gtk.CheckButton(label = "%s")\n' % _("Do not show again"))
f.write('dlg.get_content_area().pack_start(cb, True, True, 0)\n')
f.write('dlg.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK).grab_focus()\n\n')
f.write('dlg.set_keep_above(True)\ndlg.show_all()\n\ndlg.run()\n')
f.write("if cb.get_active() :\n open(fname, 'w').close()\n")
f.write('exit(0)\n')
os.chmod(p, 0o755)
mess_dlg(_('LinuxCNC needs to be restarted now'))
def key_press_event(self, win, event):
if event.type == gdk.KEY_PRESS:
k_name = gdk.keyval_name(event.keyval)
# print(k_name)
if ((k_name >= 'KP_0' and k_name <= 'KP_9') or \
(k_name >= '0' and k_name <= '9')) :
self.input(None, k_name[-1])
elif k_name in ['KP_Decimal', 'period', 'comma', 'KP_Separator'] :
if (self.data_type == 'float'):
self.input(None, decimal_point)
elif k_name in ['KP_Divide', 'slash'] :
self.input(None, '/')
elif k_name in ['KP_Multiply', 'asterisk'] :
self.input(None, '*')
elif k_name in ['parenleft', 'parenright'] :
self.input(None, '()')
elif k_name == 'F2' :
self.input(None, 'F2')
elif k_name in ['C', 'c'] :
self.input(None, 'C')
elif k_name == 'equal' :
self.input(None, '=')
elif k_name in ['KP_Subtract', 'minus'] :
self.input(None, '-')
elif k_name in ['KP_Add', 'plus'] :
self.input(None, '+')
elif k_name == 'BackSpace' :
self.input(None, 'BS')
elif k_name in ['KP_Enter', 'Return', 'space']:
self.dlg.response(gtk.RESPONSE_OK)
def ok(self, btn):
self.convert_units = False
self.dlg.response(gtk.RESPONSE_OK)
def focus_out(self, widget, event):
if vkb_cancel_on_out:
self.dlg.response(gtk.RESPONSE_CANCEL)
else :
self.dlg.response(gtk.RESPONSE_OK)
def list_btn_released(self, widget, event):
self.list_window.response(gtk.RESPONSE_OK)
def string_edit_focus_out(self, widget, event):
self.stringedit_window.response(gtk.RESPONSE_OK)