0

使用http://pygtk.org/pygtk2tutorial/examples/filelisting.py如何检测对文件名的单击并对其进行处理(例如在标准输出上打印此文件名)?

文件在这里:

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 中如何处理点击?

4

1 回答 1

1

好的,我发现:

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
于 2013-08-03T01:36:59.900 回答