سلام
خب ، به نظر میاد که تقریبا با مسائل اولیه و نحوه کار با tkinter آشنایی کافی پیدا کردیم . حالا لازمه که کمی به موارد مهمتر و البته جذاب تر بپردازیم.
MessageBox
زمان خوبی برای معرفی ماژول tkmessagebox است .
یکی از پرکاربردترین رفتارها در برنامه نویسی رابط گرافیکی نمایش پیغام متناسب با شرایط ، به کاربر است . این ماژول دارای چند تابع مفید به شرح زیر است :
showwarning, showerror, Showinfo
askquestion, askokcancel, askyesno , askyesnocancel , askretrycance
دو تابع اول جهت اطلاع رسانی بدون حق انتخاب به کاربر است و توابع ردیف دوم جهت نمایش پیام و دریافت نظر کاربر جهت ادامه عملیات است . همه این توابع دو آرگومان اصلی دارند که به ترتیب چپ به راست ، نام پنجره و متن پیام ظاهر شده است . شما به استفاده از مقادیر برگشتی توابع دریف دوم قادر خواهید بود تا رابطه کاربر و برنامه را کنترل کنید. برای درک بهتر مطالب ، به مثالی آماده کردم توجه کنید :
[from tkinter import *
from tkinter.messagebox import *
root = Tk()
lbl = Label(root, text='I love python ')
lbl.pack()
def bc_color():
lbl.config(bg='yellow')
showinfo ('message' ,'backgroung color is yellow')
def txt_color():
res = askquestion ('message' ,'do yuo want to change color')
if res == YES:
lbl.config(fg='red')
showwarning('Warning', 'the text color is changed')
if res == NO :
showerror('Error', 'color not changed')
btn1 = Button(root, text='backgorund', command = bc_color)
btn1.pack()
btn2 = Button(root, text='text', command = txt_color)
btn2.pack()
root.mainloop()
در خط دوم فراخوانی ماژول tkMessageBox را مشاهده می کنید . در خط ششم یک تابع تعریف نموده و رنگ زمینه Label که در چند خط قبل تعریف کردیم را تغییر می دهد . و سپس بوسیله تابع showinfo و نمایش یک پیام ، این تغییر را به کاربر اعلام میکند.
2.JPG1.JPG
تابع بعدی جهت تغییر رنگ متن بکار می رود . در ابتدا به وسیله متغیر res مقدار بازگشتی از تابع askquestion را دریافت می کند و سپس با استفاده از دو شرط این مقدار را بررسی کرده و متناسب با آن ، پیامی برای کاربر ارسال می نماید . (جهت نمایش این پیام ها از توابع متفاوت استفاده شده است تا نحوه نمایش آنها را ملاحظه کنید)
4.JPG5.JPG3.JPG
تصاویر مربوط به کلیک بر روی دگمه text و انتخاب گزینه های yes و no