Вывести сообщение на экран tkinter

Обновлено: 01.07.2024

Модули пакета необходимо импортировать отдельно. То есть вы импортируете содержимое tkinter (например, from tkinter import * ) и отдельно входящий в состав пакета tkinter модуль. Способы импорта на примере messagebox и пример вызова одной из функций модуля:

import tkinter.messagebox → tkinter.messagebox.askyesno()

from tkinter.messagebox import * → askyesno()

from tkinter import messagebox → messagebox.askyesno()

from tkinter import messagebox as mb (вместо mb может быть любой идентификатор) → mb.askyesno()

В уроке мы будем использовать последний вариант.

Модуль messagebox – стандартные диалоговые окна

Окно выбора "да" или "нет" – askyesno :

Нажатие "Да" в диалоговом окне возвращает в программу True , "Нет" вернет False (также как закрытие окна через крестик). Таким образом в коде можно обработать выбор пользователя. В данном случае если последний соглашается, то данные переносятся из поля в метку.

Опции title и message являются позиционными, так что можно указывать только значения: askyesno("Вопрос", "Перенести данные?") .

Подобные окна генерируются при использовании функции askokcancel с надписями на кнопках "ОК" и "Отмена", askquestion (возвращает не True или False , а строки 'yes' или 'no'), askretrycancel ("Повторить", "Отмена"), askyesnocancel ("Да", "Нет", "Отмена").

Модуль filedialog – диалоговые окна открытия и сохранения файлов

Рассмотрим две функции из модуля filedialog – askopenfilename и asksaveasfilename . Первая предоставляет диалоговое окно для открытия файла, вторая – для сохранения. Обе возвращают имя файла, который должен быть открыт или сохранен, но сами они его не открывают и не сохраняют. Делать это уже надо программными средствами самого Python.

Опция filetype позволяет перечислить типы файлов, которые будут сохраняться или открываться, и их расширения.

Примечание. В приведенном коде при размещении текстового поля методом grid не указаны аргументы row и column . В таких случаях подразумевается, что их значениями являются нули.

Практическая работа

В приведенной в уроке программе с функциями askopenfilename и asksaveasfilename генерируются исключения, если диалоговые окна были закрыты без выбора или указания имени файлов.

Добавьте кнопку "Очистить", которая удаляет текст из поля. Перед удалением пользователь должен подтвердить свои намерения через соответствующее диалоговое окно.

Курс с примерами решений практических работ: android-приложение, pdf-версия.

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

Содержание курса

Содержание статьи

Диалоговые окна используются для:

  • ввода данных;
  • редактирования данных;
  • настроек приложения и прочего.

Диалоговые окна имеют огромное значение для коммуникации между пользователем и компьютерной программой.

Всплывающие окна с уведомлениями в Tkinter

Создадим свое диалоговое окно. Для примера оно создается используя несколько виджетов:

Код созданного информационного окна может быть следующим:

Для привлечения внимания можно использовать окно предупреждения:

messagebox_warning

Окно с возникшей ошибкой ПО думаю встречал каждый, на питоне его можно создать, написав следующий код:

messagebox_error

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

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

  1. Исследование: после каждого вызова диалогового окна добавьте команду print(response) , которая выведет в консоль значение выбранного варианта ответа.

Параметры

Можно использовать два параметра: default и parent.

1. showinfo()

2. showwarning()

Этот метод используется для отображения предупреждения пользователю. Рассмотрим следующий пример.

3. showerror()

4. askquestion()

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

askquestion()

5. askokcancel()

Этот метод используется для подтверждения действий пользователя в отношении некоторых действий приложения. Рассмотрим следующий пример.

askokcancel()

6. askyesno()

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

askyesno()

7. askretrycancel()

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

Читайте также: