Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 9763 razy

Jeżeli chodzi o okna dialogowe typu Messagebox to w Pythonie jest w tym niewielkie zamieszanie. W wersji Pythona 2.7.1 jest od tego oddzielny moduł o nazwie tkMessageBox, natomiast w wersji 3+ moduł znajduje się wewnątrz modułu tkinter pod uproszczoną nazwą messagebox. Oto przykład wywoływania dwóch typów okien dialogowych:

import tkinter as tk from tkinter import messagebox as msb class Application: def __init__(self): self.window = tk.Tk() self.window.bind("<Button-1>", self.wnd_lbc) self.window.bind("<Button-3>", self.wnd_rbc) self.window.mainloop() def wnd_lbc(self, event): msb.showinfo("Info", "Kliknięto lewy przycisk myszki") # wywołanie okna dialogowego def wnd_rbc(self, event): if msb.askokcancel("Pytanie", "Czy ja śnię,\nczy kliknąłeś w okno me!"): # okno dialogowe z przyciskami ok i cancel - zwraca prawdę, gdy ok jest wciśnięte msb.showinfo("Info", "A jednak to prawdą było!\nA jednak mi się nie przyśniło") else: msb.showinfo("Info", "Przykro mi się zrobiło,\nChyba mi się coś przyśniło") apl = Application()

Wewnątrz modułu messagebox znajdują się następujące funkcje, które z kolei umożliwiają wywołanie różnych typów okien dialogowych:

  • showinfo - wyświetla podane informacje z ikonką (tu znów zależy jaka wersja Pythona jest używana);
  • showwarning - wyświetla podane informacje z ikonką ostrzeżenia;
  • showerror - wyświetla podane informacje z ikonką błędu;
  • askquestion - wyświetla okno dialogowe z dwoma przyciskami tak oraz nie, funkcja zwraca True, gdy wciśnięto ok;
  • askokcancel - podobnie jak askquestion z tą różnicą, że wyświetla przyciski ok oraz cancel;
  • askyesno - zasadniczo to samo co askquestion;
  • askretrycancel - podobnie jak askquestion z tą różnicą, że wyświetla przyciski ponów oraz cancel
Przykład wywołania okna dialogowego z modułu messagebox zawartego w module tkinter języka programowanie Python
Rys. 1
Przykład wywołania okna dialogowego.
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.