2011-05-08 44 views
-1
import pygtk 
pygtk.require('2.0') 

import gtk 

# Check for new pygtk: this is new class in PyGtk 2.4 
if gtk.pygtk_version < (2,3,90): 
    print "PyGtk 2.3.90 or later required for this example" 
    raise SystemExit 

dialog = gtk.FileChooserDialog("Open..", 
           None, 
           gtk.FILE_CHOOSER_ACTION_OPEN, 
           (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, 
           gtk.STOCK_OPEN, gtk.RESPONSE_OK)) 
dialog.set_default_response(gtk.RESPONSE_OK) 

filter = gtk.FileFilter() 
filter.set_name("All files") 
filter.add_pattern("*") 
dialog.add_filter(filter) 

filter = gtk.FileFilter() 
filter.set_name("Images") 
filter.add_mime_type("image/png") 
filter.add_mime_type("image/jpeg") 
filter.add_mime_type("image/gif") 
filter.add_pattern("*.png") 
filter.add_pattern("*.jpg") 
filter.add_pattern("*.gif") 
filter.add_pattern("*.tif") 
filter.add_pattern("*.xpm") 
dialog.add_filter(filter) 

response = dialog.run() 
if response == gtk.RESPONSE_OK: 
    print dialog.get_filename(), 'selected' 
elif response == gtk.RESPONSE_CANCEL: 
    print 'Closed, no files selected' 
dialog.destroy() 
+0

'开放(dialog.get_filename())'? – Philipp 2011-05-08 21:17:39

+0

“open”是什么意思?你想打开它在用户与该文件扩展名关联的任何程序?或者你想在Python中打开它并以编程方式操作? – Mark 2011-05-09 13:28:27

+0

在vi中打开终端中的文件 – 2011-05-09 14:45:42

回答

0

当然,这是对于只有Linux:

import subprocess 

subprocess.call(['/usr/bin/terminal','-x','/usr/bin/vim', dialog.get_filename()]) 
相关问题