2013-08-03 116 views
0

使用http://pygtk.org/pygtk2tutorial/examples/filelisting.py如何檢測文件名上的點擊並對其執行某些操作(如在標準輸出中打印此文件名)?在pyGTK中捕獲點擊

文件是在這裏:

def make_list(self, dname=None): 
    if not dname: 
     self.dirname = os.path.expanduser('~') 
    else: 
     self.dirname = os.path.abspath(dname) 
    self.window.set_title("Nitpicker : " + self.dirname) 
    files = [f for f in os.listdir(self.dirname) if f[0] <> '.'] 
    files.sort() 
    files = ['..'] + files 
    listmodel = gtk.ListStore(object) 
    for f in files: 
     listmodel.append([f]) 
     return listmodel 

在這最後一個for循環,我可以附加˚F觸發像

subprocess.call(["play", file]) 

但我怎麼能做到這一點的函數的事件?如何在pyGTK中處理點擊?

回答

1

OK,我發現:

def open_file(self, treeview, path, column): 
    model = treeview.get_model() 
    iter = model.get_iter(path) 
    filename = os.path.join(self.dirname, model.get_value(iter, 0)) 
    filestat = os.stat(filename) 
    # print filename 
    if stat.S_ISDIR(filestat.st_mode): 
     new_model = self.make_list(filename) 
     treeview.set_model(new_model) 
    else: 
     print filename + "is a file!!" 
    return 
+0

隨意接受你自己的答案。因此,未來的用戶知道這個答案解決了這個問題。 – Hyperboreus