0

我试图显示GtkFileChooserDialog何时编辑包含路径的列。GtkTreeView

我想出了两种可能的方法来实现这一点:

  1. 将信号挂在显示路径的"editing-started"信号上。GtkCellRendererText然而,这仍然需要在单元格内完成“编辑”。我无法显示对话框,然后取消通常的编辑过程。
  2. 在列中添加一个“...”按钮。捕捉"clicked"按钮上的信号,并使用它来显示对话框。但是只有GtkCellRenderers 可以添加到列中,所以我不知道如何实现这一点。

我应该如何进行?编辑路径的标准方法是GtkTreeView什么?

4

1 回答 1

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)

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

于 2011-01-26T18:30:42.527 回答