显示包含路径的树视图列的文件选择对话框

时间:2011-01-24 03:59:02

标签: python gtk pygtk gtktreeview

我正在尝试在编辑包含路径的GtkFileChooserDialog GtkTreeView时显示column

我想出了两种可能的方法来实现它:

  1. 在显示路径的"editing-started"上隐藏GtkCellRendererText信号。然而,这仍然需要在单元内完成“编辑”。我无法显示对话框,然后cancel通常的编辑过程。
  2. 添加“...”按钮into the column。在按钮上捕获"clicked"信号,并使用它来显示对话框。但是,只有GtkCellRenderer可以添加到列中,所以我不知道如何实现它。
  3. 我该怎么办?编辑GtkTreeView中的路径的标准方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以覆盖CellRendererText的do_start_editing方法以完全更改其行为:

class CellRendererFile(gtk.CellRendererText):
    def __init__(self):
        gtk.CellRendererText.__init__(self)
        self.props.editable = True

    def do_start_editing(self, event, widget, path, background_area, cell_area, flags):
        # TODO: Show dialog.
        self.emit('edited', path, "TODO: Dialog output")

gobject.type_register(CellRendererFile)

然后只需正常使用,连接到“已编辑”的信号。