Message window in python

Tkinter messagebox

Summary: in this tutorial, you’ll learn how to show various message boxes using the tkinter.messagebox module.

Introduction to tkinter.messagebox module

When developing a Tkinter application, you often want to notify users about the events that occurred.

For example, when users click the save button, you want to notify them that the record has been saved successfully.

If an error occurred, for example, the database server is not reachable, you can notify users of the error.

When the update has been completed but the record already exists, you may want to show a warning.

To cover all of these scenarios, you can use various functions from the tkinter.messagebox module:

  • showinfo() – notify that an operation completed successfully.
  • showerror() – notify that an operation hasn’t completed due to an error.
  • showwarrning() – notify that an operation completed but something didn’t behave as expected.

All of these functions accept two arguments:

showinfo(title, message) showerror(title, message) showwarrning(title, message)Code language: Python (python)
  • The title is displayed on the title bar of the dialog.
  • The message is shown on the dialog.

To span the message multiple lines, you can add the new line character ‘\n’ .

Tkinter messagebox examples

The following program consists of three buttons. When you click a button, the corresponding message box will display.

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() Code language: Python (python)

First, import the tkinter , tkinter.ttk , and tkinter.messagebox modules:

import tkinter as tk from tkinter import ttk from tkinter.messagebox import showerror, showwarning, showinfo Code language: Python (python)

Second, create the root window and initialize its properties:

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

Third, create three buttons and assign a lambda expression to the command option of each button. Each lambda expression shows a corresponding message box.

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) Code language: Python (python)

Finally, display the root window.

root.mainloop() Code language: Python (python)

Summary

  • Use showinfo() , showerror() , showwarrning() functions from the tkinter.messagebox module to show an information, error, and warning message.
Читайте также:  first-letter

Источник

tkinter.messagebox — Tkinter message prompts¶

The tkinter.messagebox module provides a template base class as well as a variety of convenience methods for commonly used configurations. The message boxes are modal and will return a subset of (True, False, OK, None, Yes, No) based on the user’s selection. Common message box styles and layouts include but are not limited to:

../_images/tk_msg.png

class tkinter.messagebox. Message ( master = None , ** options ) ¶

Create a default information message box.

Information message box

tkinter.messagebox. showinfo ( title = None , message = None , ** options ) ¶

Warning message boxes

tkinter.messagebox. showwarning ( title = None , message = None , ** options ) ¶ tkinter.messagebox. showerror ( title = None , message = None , ** options ) ¶

Question message boxes

tkinter.messagebox. askquestion ( title = None , message = None , ** options ) ¶ tkinter.messagebox. askokcancel ( title = None , message = None , ** options ) ¶ tkinter.messagebox. askretrycancel ( title = None , message = None , ** options ) ¶ tkinter.messagebox. askyesno ( title = None , message = None , ** options ) ¶ tkinter.messagebox. askyesnocancel ( title = None , message = None , ** options ) ¶

Источник

Message window in python

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

  • showinfo() : предназначена для отображения некоторой информации
  • showerror() : предназначена для отображения ошибок
  • showwarrning() : предназначена для отображения предупреждений

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

showinfo(title, message, **options) showerror(title, message, **options) showwarrning(title, message, **options)
  • title : заголовок окна
  • message : отображаемое сообщение
  • options : настройки окна

В реальности различие между этими типами сообщений заключается лишь в изображении, которое отображается рядом с текстом сообщения:

from tkinter import * from tkinter import ttk from tkinter.messagebox import showerror, showwarning, showinfo root = Tk() root.title("METANIT.COM") root.geometry("250x200") def open_info(): showinfo(title="Информация", message="Информационное сообщение") def open_warning(): showwarning(title="Предупреждение", message="Сообщение о предупреждении") def open_error(): showerror(title="Ошибка", message="Сообщение об ошибке") info_button = ttk.Button(text="Информация", command=open_info) info_button.pack(anchor="center", expand=1) warning_button = ttk.Button(text="Предупреждение", command=open_warning) warning_button.pack(anchor="center", expand=1) error_button = ttk.Button(text="Ошибка", command=open_error) error_button.pack(anchor="center", expand=1) root.mainloop()

Здесь по нажатию на каждую из трех кнопок отображается соответствующее сообщение:

Читайте также:  Alt text for links html

Окна с сообщениями messagebox в Tkinter и Python

Окна подтверждения операции

Модуль tkinter.messagebox также предоставляет ряд функций для подтверждения операции, где пользователю предлагается нажать на одну из двух кнопок:

Все эти функции принимают те же три параметра title, message и options. Отличие между ними только в том, что кнопки имеют разный текст. В случае нажатия на кнопку подтверждения, функция возвращает значение True , иначе возвращается False

from tkinter import * from tkinter import ttk from tkinter.messagebox import showinfo, askyesno root = Tk() root.title("METANIT.COM") root.geometry("250x200") def click(): result = askyesno(title="Подтвержение операции", message="Подтвердить операцию?") if result: showinfo("Результат", "Операция подтверждена") else: showinfo("Результат", "Операция отменена") ttk.Button(text="Click", command=click).pack(anchor="center", expand=1) root.mainloop()

В данном случае по нажатию на кнопку вызывается функция askyesno() , которая отображает диалоговое окно с двумя кнопками «Да» и «Нет». В зависимости от того, на какую кнопку нажмет пользователь, функция возвратит True или False. Получив результат функции, мы можем проверить его и выполнить те или иные действия.

Диалоговые окна в Tkinter и Python

Особняком стоит функция askquestion — она также отображает две кнопки для подтверждения или отмены действия (кнопки «Yes»(Да) и «No»(Нет)), но в зависимости от нажатой кнопки возвращает строку: «yes» или «no».

Также отдельно стоит функция askyesnocancel() — она отображает три кнопки: Yes (возвращает True), No (возвращает False) и Cancel (возвращает None):

from tkinter import * from tkinter import ttk from tkinter.messagebox import showinfo, askyesnocancel root = Tk() root.title("METANIT.COM") root.geometry("250x200") def click(): result = askyesnocancel(title="Подтвержение операции", message="Подтвердить операцию?") if result==None: showinfo("Результат", "Операция приостановлена") elif result: showinfo("Результат", "Операция подтверждена") else : showinfo("Результат", "Операция отменена") ttk.Button(text="Click", command=click).pack(anchor="center", expand=1) root.mainloop()

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

Диалоговые окна подтверждения операции в Tkinter и Python

Настройка окон

Дополнительно все вышерассмотренные функции принимают ряд параметров, которые могут применяться для настройки окон. Некоторые из них:

  • detail : дополнительный текст, который отображается под основным сообщением
  • icon : иконка, которая отображается рядом с сообщением. Должна представлять одно из втроенных изображений: info, error, question или warning
  • default : кнопка по умолчанию. Должна представлять одно из встроенных значений: abort, retry, ignore, ok, cancel, no, yes
from tkinter import * from tkinter import ttk from tkinter.messagebox import OK, INFO, showinfo root = Tk() root.title("METANIT.COM") root.geometry("250x200") def click(): showinfo(title="METANIT.COM", message="Добро пожаловать на сайт METANIT.COM", detail="Hello World!", icon=INFO, default=OK) ttk.Button(text="Click", command=click).pack(anchor="center", expand=1) root.mainloop()

При нажатии на кнопку отобразится следующее окно:

Читайте также:  Adding methods to class python

Источник

Оцените статью