используя диалог filechooser с glade - PullRequest
2 голосов
/ 03 декабря 2011

Я хотел бы спросить, знает ли кто-нибудь, как использовать диалог filechooser в 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: Вот изображение, иллюстрирующее ситуацию:

enter image description here

1 Ответ

5 голосов
/ 03 декабря 2011

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

...