Как использовать функцию Tkinter askretrycancel() в Python

В этом уроке вы узнаете, как использовать функцию Tkinter askretrycancel() для отображения диалогового окна подтверждения «Повторить/Отменить» в Python.

Знакомство с функцией Tkinter askretrycancel()

Иногда приложение выполняет задачу, но не может сделать этого из-за ошибки.

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

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

Чтобы отобразить диалоговое окно «Повторить/Отмена», можно использовать функцию askretrycancel():

answer = askretrycancel(title, message, **options)

Функция askretrycancel() возвращает True, если нажата кнопка Retry. Если нажата кнопка Cancel, она возвращает False.

Пример с функцией askretrycancel() в Tkinter

Следующая программа показывает кнопку, имитирующую плохое соединение с базой данных:

Пример работы функции askretrycancel() в Tkinter

Если нажать кнопку, появится диалоговое окно Retry/Cancel, сообщающее, что сервер базы данных недоступен. Также будет предложено переподключиться к серверу базы данных:

Диалоговое окно Retry/Cancel

Если нажать кнопку «Повторить», откроется диалоговое окно, сообщающее о том, что программа пытается повторно подключиться к серверу базы данных.

Пример сообщения

Программа:

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import askretrycancel, showinfo

# create the root window
root = tk.Tk()
root.title('Tkinter OK/Retry Dialog')
root.geometry('300x150')

# click event handler
def confirm():
    answer = askretrycancel(
        title='Connection Issue',
        message='The database server is unreachable. Do you want to retry?'
    )
    if answer:
        showinfo(
            title='Information',
            message='Attempt to connect to the database again.')


ttk.Button(
    root,
    text='Connect to the Database Server',
    command=confirm).pack(expand=True)


# start the app
root.mainloop()
Похожие посты
Добавить комментарий

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