Messagebox w tkinter

Stronę tą wyświetlono już: 257 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:

Listing 1
  1. import tkinter as tk
  2. from tkinter import messagebox as msb
  3. class Application:
  4. def __init__(self):
  5. self.window = tk.Tk()
  6. self.window.bind("<Button-1>", self.wnd_lbc)
  7. self.window.bind("<Button-3>", self.wnd_rbc)
  8. self.window.mainloop()
  9. def wnd_lbc(self, event):
  10. msb.showinfo("Info", "Kliknięto lewy przycisk myszki") # wywołanie okna dialogowego
  11. def wnd_rbc(self, event):
  12. 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
  13. msb.showinfo("Info", "A jednak to prawdą było!\nA jednak mi się nie przyśniło")
  14. else:
  15. msb.showinfo("Info", "Przykro mi się zrobiło,\nChyba mi się coś przyśniło")
  16. 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.

Komentarze