Отображение диалогового окна выбора файла для столбца в виде дерева, содержащего пути - PullRequest
0 голосов
/ 24 января 2011

Я пытаюсь показать GtkFileChooserDialog, когда GtkTreeView столбец , который содержит пути, отредактирован.

Я предложил 2 возможных способа реализации этого:

  1. Подключите сигнал "editing-started" к GtkCellRendererText, который показывает путь. Однако это все еще требует, чтобы "редактирование" было сделано внутри ячейки. Я не могу показать диалоговое окно и затем отменить обычный процесс редактирования.
  2. Добавить кнопку "..." в столбец . Поймайте "clicked" сигналов на кнопке и используйте это, чтобы показать диалоговое окно. Однако к столбцу можно добавить только GtkCellRenderer s, поэтому я не знаю, как это реализовать.

Как мне поступить? Какой стандартный метод для редактирования путей в GtkTreeView?

1 Ответ

1 голос
/ 26 января 2011

Вы можете переопределить метод 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)

А потом просто используйте нормально, подключитесь к «отредактированному» сигналу.

...