используя диалоговое окно выбора файлов с Glade

Я хотел бы спросить, знает ли кто-нибудь, как использовать диалог выбора файлов в Glade и pygtk. (Он должен быть очень похож в любой из языковых привязок, и именно поэтому я не указывал язык.) По сути, теперь средство выбора файлов выглядит так: есть два столбца, один для папок (слева) и один для файлов (справа). Затем в нижней части диалогового окна есть два пустых слота для двух кнопок, поэтому я просто поместил туда кнопку «Отмена» и кнопку «ОК». Но тогда мой вопрос в том, что возвращает диалог? Мой код выглядит так:

    filename = None
    response = self.widget('filechooserdialog').run()
    print response
    #if response == Gtk.RESPONSE_OK: 
    filename = self.widget('filechooserdialog').get_filename()
    self.widget('filechooserdialog').hide()

и на данный момент обратный вызов «Отмена» и «ОК» просто скрывает диалог. Но я не могу узнать, что диалог должен вернуть. Другими словами, как я могу указать в ответе, была ли нажата кнопка «Отмена» или «ОК»?

Спасибо,

v923z

PS: Вот изображение, иллюстрирующее ситуацию:

введите здесь описание изображения


person v923z    schedule 02.12.2011    source источник


Ответы (1)


Диалог с кнопками возвращает идентификатор ответа, связанный с нажатой кнопкой. В вашем случае, когда вы создаете кнопки «Отмена» и «ОК» на поляне и помещаете их в пустой слот, доступный в диалоговом окне выбора файла, в поле редактирования (в правом нижнем углу экрана, которое будет иметь заголовок, например «Свойства кнопки». ..") вы можете увидеть параметр Response ID: (это кнопка прокрутки со значением по умолчанию 0) на вкладке General. Просто установите значение, которое вы хотите получать при нажатии этой кнопки. Установите это как разные значения для разных кнопок. Теперь, когда вы запустите диалоговое окно и нажмете кнопку, вы получите значение идентификатора ответа, которое вы установили. Основываясь на этом, вы можете предпринимать свои действия.
Надеюсь, это поможет!

person another.anon.coward    schedule 03.12.2011
comment
Большое спасибо за ответ! Это решило проблему. Но это просто оставляет меня в недоумении, где можно найти эти кусочки информации. Мне кажется, чтоglade и gtk разрабатываются более быстрыми темпами, чем то, за чем может угнаться документация. - person v923z; 03.12.2011