在pyGTK中单击一下

时间:2013-08-03 01:11:28

标签: python pygtk

使用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中处理点击?

1 个答案:

答案 0 :(得分: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