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

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