Модуль Tkinter messagebox в Python на примерах

Различные окна сообщений можно отображать с помощью модуля tkinter.messagebox в Python.

Что такое модуль tkinter.messagebox?

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

Если произошла ошибка, например, сервер базы данных недоступен, вы можете уведомить пользователей об ошибке. Если обновление завершено, но запись уже существует, вы можете захотеть отобразить предупреждение.

Чтобы охватить все эти сценарии, вы можете использовать различные функции из модуля tkinter.messagebox:

  • showinfo() – уведомить об успешном завершении операции.
  • showerror() – уведомляет о том, что операция не завершена из-за ошибки.
  • showwarrning() – уведомляет о том, что операция завершена, но что-то пошло не так, как ожидалось.

Все эти функции принимают два аргумента:

showinfo(title, message)
showerror(title, message)
showwarrning(title, message)
  • title отображается в строке заголовка диалогового окна.
  • message отображается в диалоговом окне.

Чтобы разбить сообщение на несколько строк, можно добавить символ новой строки «\n».

Примеры сообщений Tkinter

Следующая программа состоит из трех кнопок. При нажатии кнопки отображается соответствующее окно сообщения.

Пример программы с тремя кнопками

Сообщение 1Сообщение 2Сообщение 3

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror, showwarning, showinfo

# create the root window
root = tk.Tk()
root.title('Tkinter MessageBox')
root.resizable(False, False)
root.geometry('300x150')

#
options = {'fill': 'both', 'padx': 10, 'pady': 10, 'ipadx': 5}

ttk.Button(
    root,
    text='Show an error message',
    command=lambda: showerror(
        title='Error',
        message='This is an error message.')
).pack(**options)

ttk.Button(
    root,
    text='Show an information message',
    command=lambda: showinfo(
        title='Information',
        message='This is an information message.')
).pack(**options)


ttk.Button(
    root,
    text='Show an warning message',
    command=lambda: showwarning(
        title='Warning',
        message='This is a warning message.')
).pack(**options)


# run the app
root.mainloop()

Как это работает.

  • Сначала импортируйте модули tkinter, tkinter.ttk и tkinter.messagebox:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror, showwarning, showinfo
  • Во-вторых, создайте корневое окно и инициализируйте его свойства:
# create the root window
root = tk.Tk()
root.title('Tkinter MessageBox')
root.resizable(False, False)
root.geometry('300x150')
  • В-третьих, создайте три кнопки и назначьте лямбда-выражение опции команды каждой кнопки. Каждое лямбда-выражение показывает соответствующее окно сообщения.
ttk.Button(
    root,
    text='Show an error message',
    command=lambda: showerror(
        title='Error',
        message='This is an error message.')
).pack(**options)

ttk.Button(
    root,
    text='Show an information message',
    command=lambda: showinfo(
        title='Information',
        message='This is an information message.')
).pack(**options)


ttk.Button(
    root,
    text='Show an warning message',
    command=lambda: showwarning(
        title='Warning',
        message='This is a warning message.')
).pack(**options)
  • Наконец, отобразите корневое окно.
root.mainloop()
Похожие посты
Добавить комментарий

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