Диалог (gtk.Dialog)

Виджет Dialog очень простой, и представляет собой окно с несколькими заранее помещёнными в него вещами для вас. Он просто создаёт окно, и размещает сверху VBox, который содержит разделитель и HBox называемый “action_area”.

Виджет Dialog может быть использован для отправки пользователю сообщений или других похожих задач. Он действительно элементарный, и есть только одна функция для него:

  dialog = gtk.Dialog(title=None, parent=None, flags=0, buttons=None)

где title это текст для заголовка, parent это основное окно приложения и flags набор различных режимов для диалогового окна:

  DIALOG_MODAL - создаёт модальное диалоговое окно
  DIALOG_DESTROY_WITH_PARENT - Закрывает диалоговое окно при закрытии родителя
  DIALOG_NO_SEPARATOR - опускает разделитель между vbox и action_area

Аргумент buttons это кортеж содержащий пары из текста кнопки и её кода отклика (response). Все аргументы имеют умолчания, указываемые ключевыми словами.

После создания диалогового окна вы можете разместить кнопку в action_area:

  button = ...
  dialog.action_area.pack_start(button, TRUE, TRUE, 0)
  button.show()

Также вы можете добавить в vbox с помощью правил размещения любой другой виджет, например, метку.

  label = gtk.Label("Dialogs are groovy")
  dialog.vbox.pack_start(label, TRUE, TRUE, 0)
  label.show()

Как пример использования диалогов, вы можете разместить две кнопки “Отмена” и “Принять” в action_area, метку в vbox, спрашивая пользователя или сообщая ему об ошибке и т.п.. Вы можете подключить разные сигналы к каждой из кнопок и выполнять операцию выбранную пользователем.

Если простые возможности предоставляемые обычными вертикальными и горизонтальными коробками не дают вам достаточно власти над вашим приложением, то вы можете разместить в эти коробки другой размещающий виджет. Например мы можете разместить таблицу в вертикальной коробке.


Предыдущая страница На уровень выше  Следующая страница
9.4. Индикатор прогресса (gtk.ProgressBar) К оглавлению  9.6. Изображение (gtk.Image)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>