دیالوگ‌های Tkinter

tkinter.simpledialog --- محاوره‌های ورودی استاندارد Tkinter

کد منبع: Lib/tkinter/simpledialog.py


ماژول tkinter.simpledialog شامل کلاس‌ها و توابع تسهیل‌کننده‌ای برای ایجاد پنجره‌های محاوره‌ای مودال (modal) ساده است تا مقداری را از کاربر دریافت کند.

tkinter.simpledialog.askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
tkinter.simpledialog.askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
tkinter.simpledialog.askstring(title, prompt, *, initialvalue=None, show=None, parent=None)

از کاربر برای وارد کردن مقداری از نوع موردنظر درخواست می‌کند و آن را برمی‌گرداند، یا اگر پنجره‌ی محاوره‌ای لغو شود، None برمی‌گرداند.

title عنوان محاوره است و prompt پیامی است که بالای ورودی نمایش داده می‌شود. initialvalue مقداری است که در ابتدا در ورودی قرار داده می‌شود. parent پنجره‌ای است که محاوره روی آن نمایش داده می‌شود. askinteger() و askfloat() همچنین minvalue و maxvalue را می‌پذیرند، که مقدار پذیرفته‌شده را محدود می‌کنند. askstring() همچنین show را می‌پذیرد، نویسه‌ای که برای پوشاندن متن واردشده استفاده می‌شود، برای مثال '*' برای پنهان کردن گذرواژه.

class tkinter.simpledialog.Dialog(parent, title=None)

کلاس پایه برای محاوره‌های سفارشی. نمونه‌سازی از آن، محاوره را به‌صورت مودال نمایش می‌دهد و پس از اینکه کاربر آن را ببندد، بازمی‌گردد؛ سپس مقدار واردشده در ویژگی result در دسترس است.

result

مقدار حاصل از apply()، یا None اگر محاوره لغو شده باشد.

body(master)

بازنویسی کنید تا رابط دیالوگ را بسازد و ابزارکی که باید فوکوس اولیه را داشته باشد برگرداند.

buttonbox()

رفتار پیش‌فرض، دکمه‌های OK و Cancel را اضافه می‌کند. برای چیدمان‌های سفارشی دکمه‌ها، آن را بازنویسی کنید.

validate()

داده واردشده توسط کاربر را اعتبارسنجی کنید. اگر معتبر باشد، true را برگردانید، که در این صورت محاوره به apply() می‌رود؛ برای باز نگه‌داشتن محاوره، false را برگردانید. پیاده‌سازی پیش‌فرض همیشه true را برمی‌گرداند؛ برای بررسی ورودی، آن را بازنویسی کنید.

apply()

داده‌های واردشده توسط کاربر را پردازش کنید، برای مثال با ذخیره‌ی آن‌ها در ویژگی result. پس از موفقیت validate() و درست پیش از تخریب محاوره فراخوانی می‌شود. پیاده‌سازی پیش‌فرض هیچ کاری انجام نمی‌دهد؛ آن را بازنویسی کنید تا بر اساس نتیجه عمل کند یا آن را ذخیره کند.

destroy()

پنجره‌ی محاوره را از بین می‌برد و ارجاع به ابزارکی که فوکوس اولیه را داشت پاک می‌کند.

class tkinter.simpledialog.SimpleDialog(master, text='', buttons=[], default=None, cancel=None, title=None, class_=None)

یک پنجره‌ی محاوره‌ای مودال ساده که پیام text را بالای ردیفی از دکمه‌های فشاری نمایش می‌دهد که برچسب‌های آن‌ها با buttons مشخص شده‌اند، و اندیس دکمه‌ای را که کاربر فشار می‌دهد برمی‌گرداند. default اندیس دکمه‌ای است که با کلید Return فعال می‌شود، cancel اندیسی است که هنگام بسته شدن پنجره از طریق مدیر پنجره برگردانده می‌شود، title عنوان پنجره است، و class_ نام کلاس Tk پنجره است.

go()

محاوره را نمایش دهید، منتظر بمانید تا کاربر دکمه‌ای را فشار دهد یا پنجره را ببندد، و اندیس دکمه‌ی انتخاب‌شده را برگردانید.

tkinter.filedialog --- محاوره‌های انتخاب پرونده

کد منبع: Lib/tkinter/filedialog.py


ماژول tkinter.filedialog کلاس‌ها و توابع کارخانه‌ای (factory functions) را برای ایجاد پنجره‌های انتخاب پرونده/پوشه ارائه می‌دهد.

محاوره‌های بومی بارگذاری/ذخیره

کلاس‌ها و توابع زیر پنجره‌های محاوره‌ای پرونده را فراهم می‌کنند که ظاهر و رفتار بومی را با گزینه‌های پیکربندی برای سفارشی‌سازی رفتار ترکیب می‌کنند. آرگومان‌های کلیدواژه‌ای زیر بر کلاس‌ها و توابع فهرست‌شده در زیر قابل اعمال هستند:

parent - پنجره‌ای که محاوره روی آن قرار می‌گیرد
title - عنوان پنجره
initialdir - پوشه‌ای که پنجره‌ی محاوره‌ای در آن آغاز می‌شود
initialfile - پرونده انتخاب‌شده هنگام باز شدن دیالوگ
filetypes - دنباله‌ای از تاپل‌های (label, pattern)، وایلدکارد '*' مجاز است
defaultextension - پسوند پیش‌فرض برای افزودن به پرونده (پنجره‌های محاوره‌ای ذخیره)
multiple - هنگامی که true باشد، انتخاب چند آیتم مجاز است

توابع کارخانه‌ای ایستا

توابع زیر هنگام فراخوانی، یک پنجره محاوره‌ای مودال (modal) با ظاهر و رفتار بومی ایجاد می‌کنند، منتظر انتخاب کاربر می‌مانند و آن را برمی‌گردانند. مقدار بازگشتی دقیق به تابع بستگی دارد (در زیر ببینید)؛ هنگامی که پنجره محاوره‌ای لغو می‌شود، این مقدار یک رشته خالی، یک تاپل خالی یا None است. نوع دقیق این مقدار خالی ممکن است بین سکوها و نسخه‌های Tk متفاوت باشد، بنابراین به‌جای مقایسه آن با یک مقدار خاص، درستی نتیجه را بسنجید.

tkinter.filedialog.askopenfile(mode='r', **options)
tkinter.filedialog.askopenfiles(mode='r', **options)

یک پنجره‌ی محاوره‌ای Open ایجاد کنید. askopenfile() شیء پرونده بازشده را برمی‌گرداند، یا اگر پنجره‌ی محاوره‌ای لغو شود، None را برمی‌گرداند. askopenfiles() فهرستی از اشیای پرونده بازشده را برمی‌گرداند، یا در صورت لغو شدن، یک تاپل خالی را برمی‌گرداند. پرونده‌ها در حالت mode باز می‌شوند (به‌طور پیش‌فرض، حالت فقط‌خواندنی 'r').

tkinter.filedialog.asksaveasfile(mode='w', **options)

یک پنجره‌ی محاوره‌ای SaveAs ایجاد می‌کند و شیء پرونده بازشده را برمی‌گرداند، یا اگر پنجره‌ی محاوره‌ای لغو شود، None را برمی‌گرداند. پرونده در حالت mode باز می‌شود (به‌طور پیش‌فرض 'w').

tkinter.filedialog.askopenfilename(**options)
tkinter.filedialog.askopenfilenames(**options)

یک پنجره‌ی محاوره‌ای Open ایجاد کنید. askopenfilename() نام پرونده انتخاب‌شده را به‌صورت یک رشته برمی‌گرداند، یا اگر پنجره‌ی محاوره‌ای لغو شود، یک رشته‌ی خالی برمی‌گرداند. askopenfilenames() یک تاپل از نام پرونده‌های انتخاب‌شده برمی‌گرداند، یا در صورت لغو، یک تاپل خالی برمی‌گرداند.

tkinter.filedialog.asksaveasfilename(**options)

یک پنجره‌ی محاوره‌ای SaveAs ایجاد کنید و نام پرونده انتخاب‌شده را به‌عنوان یک رشته برگردانید، یا اگر پنجره‌ی محاوره‌ای لغو شد، یک رشته‌ی خالی برگردانید.

tkinter.filedialog.askdirectory(**options)

از کاربر برای انتخاب یک پوشه درخواست می‌کند و مسیر آن را به‌صورت یک رشته برمی‌گرداند، یا اگر پنجره‌ی گفتگو لغو شود، یک رشته خالی برمی‌گرداند. گزینه کلیدواژه‌ای اضافی: mustexist - اگر true باشد، کاربر فقط می‌تواند یک پوشه‌ی موجود را انتخاب کند (به‌طور پیش‌فرض false است).

class tkinter.filedialog.Open(master=None, **options)
class tkinter.filedialog.SaveAs(master=None, **options)
class tkinter.filedialog.Directory(master=None, **options)

سه کلاس بالا، پنجره‌های محاوره‌ای بومی را برای بارگذاری و ذخیره پرونده‌ها و برای انتخاب یک پوشه فراهم می‌کنند.

کلاس‌های راحتی

کلاس‌های زیر برای ایجاد پنجره‌های پرونده/پوشه از صفر استفاده می‌شوند. این‌ها ظاهر و رفتار بومی پلتفرم را شبیه‌سازی نمی‌کنند.

توجه

برای مدیریت رویداد و رفتار سفارشی، باید از کلاس FileDialog زیرکلاس ساخته شود.

class tkinter.filedialog.FileDialog(master, title=None)

یک محاوره‌ی انتخاب پرونده ساده ایجاد کنید.

cancel_command(event=None)

باعث پایان یافتن پنجره‌ی محاوره‌ای شوید.

dirs_double_event(event)

هندلر رویداد دوبارکلیک روی پوشه.

dirs_select_event(event)

هندلر رویداد برای رویداد کلیک روی پوشه.

files_double_event(event)

هندلر رویداد برای رویداد دوبارکلیک روی پرونده.

files_select_event(event)

هندلر رویداد برای رویداد تک‌کلیک روی پرونده.

filter_command(event=None)

پرونده‌ها را بر اساس پوشه فیلتر کنید.

get_filter()

فیلتر پرونده در حال استفاده را دریافت کنید.

get_selection()

آیتم انتخاب‌شده‌ی فعلی را بازیابی کنید.

go(dir_or_file=os.curdir, pattern='*', default='', key=None)

دیالوگ را ترسیم کنید و حلقه رویداد را آغاز کنید.

ok_event(event)

خروج از پنجره‌ی محاوره با برگرداندن انتخاب فعلی.

ok_command()

هنگامی که کاربر انتخاب فعلی را تأیید می‌کند، فراخوانی می‌شود. پیاده‌سازی پایه انتخاب را می‌پذیرد و پنجره‌ی محاوره‌ای را می‌بندد؛ LoadFileDialog و SaveFileDialog آن را بازنویسی می‌کنند تا ابتدا انتخاب را بررسی کنند.

quit(how=None)

دیالوگ خروج خارج می‌شود و در صورت وجود، نام پرونده را برمی‌گرداند.

set_filter(dir, pat)

فیلتر پرونده را تنظیم کنید.

set_selection(file)

انتخاب پرونده جاری را به file به‌روزرسانی کنید.

class tkinter.filedialog.LoadFileDialog(master, title=None)

یک زیرکلاس از FileDialog که یک پنجره‌ی محاوره‌ای برای انتخاب یک پرونده موجود ایجاد می‌کند.

ok_command()

آزمایش کنید که پرونده‌ای ارائه‌شده باشد و انتخاب، نشان‌دهنده‌ی یک پرونده از قبل موجود باشد.

class tkinter.filedialog.SaveFileDialog(master, title=None)

زیرکلاسی از FileDialog که یک پنجره‌ی محاوره‌ای برای انتخاب پرونده مقصد ایجاد می‌کند.

ok_command()

بررسی می‌کند که آیا مورد انتخاب‌شده به یک پرونده معتبر اشاره می‌کند که پوشه نیست یا خیر. اگر یک پرونده از پیش موجود انتخاب شده باشد، تأیید لازم است.

tkinter.commondialog --- قالب‌های پنجره محاوره‌ای

کد منبع: Lib/tkinter/commondialog.py


ماژول tkinter.commondialog کلاس Dialog را فراهم می‌کند که کلاس پایه برای محاوره‌های تعریف‌شده در سایر ماژول‌های پشتیبانی است.

class tkinter.commondialog.Dialog(master=None, **options)
show(**options)

پنجره‌ی Dialog را رندر کنید.

tkinter.dialog --- جعبه‌های محاوره‌ای کلاسیک Tk

کد منبع: Lib/tkinter/dialog.py


ماژول tkinter.dialog یک جعبه‌ی محاوره‌ی مودال ساده ارائه می‌دهد که مبتنی بر ابزارک‌های کلاسیک Tk (بدون تم) است.

tkinter.dialog.DIALOG_ICON

نام یک بیت‌مپ ('questhead') مناسب برای استفاده به‌عنوان bitmap یک Dialog.

class tkinter.dialog.Dialog(master=None, cnf={}, **kw)

یک جعبه محاوره‌ای مودال ساخته‌شده از ابزارک‌های کلاسیک Tk (بدون تم) را نمایش می‌دهد و منتظر می‌ماند تا کاربر یکی از دکمه‌های آن را فشار دهد. گزینه‌ها، که از طریق cnf یا به‌صورت آرگومان‌های کلیدواژه‌ای داده می‌شوند، همه الزامی هستند: title (عنوان پنجره)، text (پیام)، bitmap (نام یک آیکون بیت‌مپ، مانند DIALOG_ICONdefault (اندیس دکمه پیش‌فرض) و strings (دنباله‌ای از برچسب‌های دکمه). پس از ساخت، ویژگی num حاوی اندیس دکمه‌ای است که کاربر فشار داده است.

destroy()

هیچ کاری انجام نمی‌دهد. پنجره‌ی محاوره‌ای به‌طور خودکار پیش از بازگشت سازنده تخریب می‌شود، بنابراین هیچ کاری برای این متد باقی نمی‌ماند.

همچنین ملاحظه نمائید

ماژول‌ها tkinter.messagebox، خواندن و نوشتن فایل‌ها