«Умная» и многократно используемая кнопка Quit

umnaya i mnogokratno ispolzuemaya knopka quit Экскурсия по tkinter, часть 1

Для некоторых из этих готовых диалогов можно найти лучшее применение. В примере 8.7 реализована прикрепляемая кнопка Quit, которая с помощью стандартных диалогов получает подтверждение в ответ на запрос о завершении. Поскольку она реализована в виде класса, ее можно прикреплять и повторно использовать в любом приложении, где требуется кнопка Quit с запросом на подтверждение. Так как в этой кнопке использованы стандартные диалоги, она должным образом выглядит на любой платформе.

Пример 8.7. PP4E\Gui\Tour\quitter.py

кнопка Quit, которая запрашивает подтверждение на завершение;

для повторного использования достаточно прикрепить экземпляр к другому графическому интерфейсу и скомпоновать с желаемыми параметрами

from tkinter import * # импортировать классы виджетов

from tkinter.messagebox import askokcancel # импортировать стандартный диалог

class Quitter(Frame): # подкласс графич. интерфейса

def __init__(self, parent=None): # метод конструктора

Frame.__init__(self, parent)

self.pack()

widget = Button(self, text=’Quit’, command=self.quit)

widget.pack(side=LEFT, expand=YES, fill=BOTH)

def quit(self):

ans = askokcancel(‘Verify exit’, “Really quit?”) if ans: Frame.quit(self)

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

Вообще этот модуль предназначен для использования в других программах, но может запускаться самостоятельно и тогда выводит кнопку, которая в нем реализована. На рис. 8.10 слева вверху показана сама кнопка Quit и диалог askokcancel запроса подтверждения, выведенный при нажатии кнопки Quit.

Рис. 8.10. Модуль Quitter с диалогом askokcancel

 

Если нажать кнопку OK в этом окне, модуль Quitter вызовет метод quit элемента Frame и закроет графический интерфейс, к которому прикреплена кнопка (на самом деле завершит работу функции mainloop). Но чтобы действительно оценить пользу, приносимую такими подпружиненными кнопками, рассмотрим графический интерфейс клиента, приведенный в следующем разделе.

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

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