Модуль диалогов в старом стиле

modul dialogov v starom stile Экскурсия по tkinter, часть 1

В более старом программном коде на языке Python можно иногда увидеть диалоги, реализованные с использованием стандартного модуля dialog. Сейчас он несколько устарел и использует внешний вид, характерный для X Window, но на случай, если вам придется встретить такой программный код при сопровождении программ на языке Python, пример 8.12 может дать представление об этом интерфейсе.

Пример 8.12. PP4E\Gui\Tour\dlg-old.py

from tkinter import *

from tkinter.dialog import Dialog

class OldDialogDemo(Frame):

def __init__(self, master=None): Frame.__init__(self, master) Pack.config(self) # то же, что и self.pack()

Button(self, text=’Pop1’, command=self.dialog1).pack() Button(self, text=’Pop2’, command=self.dialog2).pack()

def dialog1(self):

ans = Dialog(self, title = ‘Popup Fun!’, text = ‘An example of a popup-dialog ‘box, using older “Dialog.py”.’, bitmap = ‘questhead’, default = 0, strings = (‘Yes’, ‘No’, ‘Cancel’)) if ans.num == 0: self.dialog2()

def dialog2(self)

Dialog(self, title = ‘HAL-9000’,

text = “I’m afraid I can’t let you do that, Dave…”, bitmap = ‘hourglass’, default = 0, strings = (‘spam’, ‘SPAM’))

if __name__ == ‘__main__’: OldDialogDemo().mainloop()

Если передать функции Dialog кортеж с метками для кнопок и текст сообщения, она вернет индекс нажатой кнопки (самая левая кнопка имеет индекс ноль). Окна Dialog являются модальными: доступ к остальным окнам приложения блокируется, пока Dialog ожидает ответа пользователя. При нажатии кнопки Pop2 в главном окне этого сценария выводится второй диалог, как показано на рис. 8.17.

Рис. 8.17. Диалог в старом стиле

 

Сценарий был запущен в Windows, и, как видите, этот диалог нисколько не похож на то, что можно было бы ожидать на этой платформе. При вызове на любой платформе этот диалог имеет внешний вид, принятый в X Window. Из-за внешнего вида диалогов, воспроизводимых модулем dialog и повышенной сложности его использования лучше использовать стандартные диалоги, продемонстрированные в предыдущем разделе.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий