0

パスを含む列が編集されたGtkFileChooserDialogときに表示しようとしています。GtkTreeView

これを実装する2つの可能な方法を思いつきました:

  1. "editing-started"パスを示す信号をフックしGtkCellRendererTextます。ただし、これには、セル内で「編集」を行う必要があります。ダイアログを表示できず、通常の編集プロセスをキャンセルできません。
  2. 列に「...」ボタンを追加します。"clicked"ボタンの信号をキャッチし、これを使用してダイアログを表示します。ただしGtkCellRenderer、列に追加できるのは s だけなので、これを実装する方法がわかりません。

どのように進めればよいですか?でパスを編集する標準的な方法は何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 に答える