2011-01-24 9 views
0

パスを含むGtkTreeViewcolumnを編集すると、GtkFileChooserDialogを表示しようとしています。パスを含むツリービュー列のファイル選択ダイアログを表示

  1. フックパスを示しGtkCellRendererText"editing-started"信号:

    私はこれを実装するための2つの可能な方法を作ってみました。しかし、これは依然として "編集"がセル内で行われることを必要とする。私はダイアログを表示することはできませんし、cancel通常の編集プロセス。

  2. 「...」ボタンを追加into the column。ボタンの信号を"clicked"にキャッチし、これを使用してダイアログを表示します。ただし、列に追加できるのはGtkCellRendererだけなので、これを実装する方法はわかりません。

どうすればよいですか? GtkTreeViewのパスを編集する標準の方法は何ですか?

答えて

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) 

をそしてちょうど「編集された」信号に接続し、通常使用します。

+0

"編集開始"ハンドラでself.editing_stoppedを呼び出すことでこれを試しましたが、これはうまくいきませんでした。私はこのように感謝します。 –

関連する問題