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