Виджет 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) |