tkinter --- رابط پایتون به Tcl/Tk¶
کد منبع: Lib/tkinter/__init__.py
بستهی tkinter («رابط Tk») رابط استاندارد پایتون برای جعبهابزار رابط کاربری گرافیکی Tcl/Tk است. Tk و tkinter هر دو در بیشتر پلتفرمهای یونیکس، از جمله macOS، و همچنین در سیستمهای ویندوز در دسترس هستند.
اجرای python -m tkinter از خط فرمان باید پنجرهای را باز کند که یک رابط ساده Tk را نمایش میدهد، به شما اطلاع میدهد که tkinter بهدرستی روی سیستم شما نصب شده است، و همچنین نشان میدهد چه نسخهای از Tcl/Tk نصب شده است، تا بتوانید مستندات Tcl/Tk مخصوص همان نسخه را بخوانید.
Tkinter از محدودهای از نسخههای Tcl/Tk پشتیبانی میکند، که با یا بدون پشتیبانی از نخ ساخته شدهاند. Tcl/Tk 8.5.12 حداقل نسخه پشتیبانیشده است؛ نسخه دودویی رسمی پایتون شامل Tcl/Tk 8.6 میشود. برای اطلاعات بیشتر درباره نسخههای پشتیبانیشده، کد منبع ماژول _tkinter را ببینید.
تغییر یافته در نسخهی 3.11: پشتیبانی از نسخههای قدیمیتر از 8.5.12 Tcl/Tk حذف شد.
Tkinter پوششی نازک نیست، بلکه مقدار قابلتوجهی از منطق خود را اضافه میکند تا تجربه را پایتونیتر کند. این مستندات بر این افزودنیها و تغییرات تمرکز خواهد کرد و برای جزئیاتی که بدون تغییر هستند، به مستندات رسمی Tcl/Tk ارجاع میدهد.
توجه
Tcl/Tk 8.5 (2007) مجموعهای مدرن از کامپوننتهای رابط کاربری دارای تم را به همراه یک API جدید برای استفاده از آنها معرفی کرد (به tkinter.ttk مراجعه کنید). هر دو API قدیمی و جدید همچنان در دسترس هستند. بیشتر مستنداتی که در اینترنت پیدا میکنید، همچنان از API قدیمی استفاده میکنند و ممکن است بهطرز تأسفباری قدیمی باشند.
این یک ماژول اختیاری است. اگر در نسخه CPython شما وجود ندارد، به مستندات توزیعکننده خود مراجعه کنید (یعنی هر کسی که پایتون را در اختیار شما قرار داده است). اگر شما توزیعکننده هستید، نیازمندیهای ماژولهای اختیاری را ببینید.
همچنین ملاحظه نمائید
- TkDocs
آموزش جامعی دربارهی ایجاد رابطهای کاربری با Tkinter. مفاهیم کلیدی را توضیح میدهد و رویکردهای توصیهشده را با استفاده از API مدرن نشان میدهد.
- مرجع Tkinter 8.5: یک رابط کاربری گرافیکی برای پایتون
مستندات مرجع برای Tkinter 8.5 که کلاسها، متدها و گزینههای موجود را با جزئیات شرح میدهد.
منابع Tcl/Tk:
- دستورات Tk
مرجع جامع برای هر یک از دستورات زیربنایی Tcl/Tk که Tkinter از آنها استفاده میکند.
- صفحهی اصلی Tcl/Tk
مستندات بیشتر، و پیوندهایی به توسعهی هستهی Tcl/Tk.
کتابها:
- Tkinter مدرن برای توسعهدهندگان پرمشغله پایتون
اثر مارک رزمن. (ISBN 978-1999149567)
- برنامهنویسی GUI پایتون با Tkinter
اثر آلن دی. مور. (ISBN 978-1788835886)
- برنامهنویسی پایتون
اثر مارک لوتز؛ پوشش بسیار خوبی از Tkinter دارد. (ISBN 978-0596158101)
- Tcl and the Tk Toolkit (ویرایش دوم)
نوشتهی جان اوسترهاوت، خالق Tcl/Tk، و کن جونز؛ Tkinter را پوشش نمیدهد. (ISBN 978-0321336330)
معماری¶
Tcl/Tk یک کتابخانه واحد نیست، بلکه شامل چند ماژول مجزا است که هر کدام عملکرد جداگانه و مستندات رسمی خود را دارند. نسخههای دودویی پایتون نیز یک ماژول افزودنی را همراه با آن عرضه میکنند.
- Tcl
Tcl یک زبان برنامهنویسی پویا و تفسیری است، درست مانند پایتون. اگرچه میتوان از آن بهتنهایی بهعنوان یک زبان برنامهنویسی همهمنظوره استفاده کرد، اما معمولاً بهصورت تعبیهشده در برنامههای C بهعنوان یک موتور اسکریپتنویسی یا رابطی برای جعبهابزار Tk به کار میرود. کتابخانه Tcl یک رابط C برای ایجاد و مدیریت یک یا چند نمونه از مفسر Tcl، اجرای دستورهای Tcl و اسکریپتهای Tcl در آن نمونهها، و افزودن دستورهای سفارشی پیادهسازیشده با Tcl یا C دارد. هر مفسر یک صف رویداد دارد، و امکاناتی برای ارسال رویدادها به آن و پردازش آنها وجود دارد. برخلاف پایتون، مدل اجرای Tcl بر پایه چندوظیفهای مشارکتی (cooperative multitasking) طراحی شده است، و Tkinter این تفاوت را پر میکند (برای جزئیات، Threading model را ببینید).
- Tk
Tk یک بسته Tcl است که به زبان C پیادهسازی شده است و دستورهای سفارشی برای ایجاد و دستکاری ابزارکهای GUI اضافه میکند. هر شیء
Tkیک نمونه مفسر Tcl مخصوص به خود را تعبیه میکند که Tk در آن بارگذاری شده است. ابزارکهای Tk بسیار قابل سفارشیسازی هستند، هرچند به بهای ظاهری قدیمی. Tk از صف رویداد Tcl برای تولید و پردازش رویدادهای GUI استفاده میکند.- Ttk
Themed Tk (Ttk) خانوادهای جدیدتر از ابزارکهای Tk است که در پلتفرمهای مختلف، ظاهر بسیار بهتری نسبت به بسیاری از ابزارکهای کلاسیک Tk دارد. Ttk از نسخه 8.5 Tk به بعد، بهعنوان بخشی از Tk توزیع میشود. پیوندهای پایتون در یک ماژول جداگانه،
tkinter.ttk، ارائه شدهاند.
در سطح داخلی، Tk و Ttk از امکانات سیستمعامل زیربنایی استفاده میکنند، یعنی Xlib در Unix/X11، Cocoa در macOS و GDI در Windows.
هنگامی که برنامه پایتون شما، برای مثال برای ایجاد یک ابزارک، از یک کلاس در Tkinter استفاده میکند، ماژول tkinter ابتدا یک رشته فرمان Tcl/Tk را میسازد. این رشته فرمان Tcl را به یک ماژول دودویی داخلی _tkinter ارسال میکند، که سپس مفسر Tcl را برای ارزیابی آن فراخوانی میکند. سپس مفسر Tcl بستههای Tk و/یا Ttk را فراخوانی میکند، که آنها نیز به نوبه خود Xlib، Cocoa یا GDI را فراخوانی میکنند.
ماژولهای Tkinter¶
پشتیبانی از Tkinter در چندین ماژول پخش شده است. بیشتر برنامهها به ماژول اصلی tkinter و همچنین ماژول tkinter.ttk نیاز خواهند داشت، که مجموعه ابزارکهای تمدار مدرن و API را ارائه میدهد:
from tkinter import *
from tkinter import ttk
ماژولهایی که پشتیبانی از Tk را فراهم میکنند عبارتند از:
tkinterماژول اصلی Tkinter.
tkinter.colorchooserپنجرهی محاورهای که به کاربر امکان انتخاب یک رنگ را میدهد.
tkinter.commondialogکلاس پایه برای محاورههای تعریفشده در دیگر ماژولهای فهرستشده در اینجا.
tkinter.filedialogمحاورههای رایج برای اینکه به کاربر اجازه دهند پروندهای را برای باز کردن یا ذخیره مشخص کند.
tkinter.fontابزارهای کمکی برای کار با قلمها.
tkinter.messageboxدسترسی به جعبههای محاورهی استاندارد Tk.
tkinter.scrolledtextابزارک Text با یک نوار پیمایش عمودی توکار.
tkinter.simpledialogمحاورههای پایه و توابع سهولتبخش.
tkinter.ttkمجموعه ابزارکهای پوستهدار که در Tk 8.5 معرفی شد، جایگزینهای مدرنی برای بسیاری از ابزارکهای کلاسیک در ماژول اصلی
tkinterفراهم میکند.
ماژولهای اضافی:
_tkinterیک ماژول دودویی که شامل رابط سطح پایین برای Tcl/Tk است. این ماژول بهطور خودکار توسط ماژول اصلی
tkinterایمپورت میشود و هرگز نباید مستقیماً توسط برنامهنویسان برنامههای کاربردی استفاده شود. این ماژول معمولاً یک کتابخانه اشتراکی (یا DLL) است، اما ممکن است در برخی موارد بهصورت ایستا با مفسر پایتون پیوند خورده باشد.idlelibمحیط توسعه و یادگیری یکپارچهی پایتون (IDLE). مبتنی بر
tkinter.tkinter.constantsثابتهای نمادینی که میتوانند بهجای رشتهها هنگام ارسال پارامترهای مختلف به فراخوانیهای Tkinter استفاده شوند. بهطور خودکار توسط ماژول اصلی
tkinterایمپورت میشوند.tkinter.dnd(آزمایشی) پشتیبانی از کشیدن و رها کردن برای
tkinter. این قابلیت زمانی که با Tk DND جایگزین شود، منسوخ خواهد شد.turtleگرافیک Turtle در یک پنجره Tk.
حلقه نجات Tkinter¶
این بخش بهگونهای طراحی نشده است که آموزشی جامع برای Tk یا Tkinter باشد. برای این منظور، به یکی از منابع خارجی که پیشتر ذکر شد مراجعه کنید. در عوض، این بخش آشنایی بسیار سریعی با شکل یک برنامه Tkinter فراهم میکند، مفاهیم بنیادین Tk را معرفی میکند و توضیح میدهد که دربرگیرندهی Tkinter چگونه ساختار یافته است.
باقیمانده این بخش به شما کمک میکند تا کلاسها، متدها و گزینههایی را که در برنامه Tkinter خود به آنها نیاز خواهید داشت، شناسایی کنید و بدانید مستندات دقیقتر درباره آنها، از جمله در راهنمای مرجع رسمی Tcl/Tk، کجا یافت میشود.
یک برنامهی Hello World¶
با بررسی گامبهگام یک برنامهی «Hello World» در Tkinter شروع میکنیم. این کوچکترین برنامهای نیست که میتوانستیم بنویسیم، اما به اندازه کافی برای نشان دادن برخی مفاهیم کلیدی که لازم است بدانید، دارد.
from tkinter import *
from tkinter import ttk
root = Tk()
frm = ttk.Frame(root, padding=10)
frm.grid()
ttk.Label(frm, text="Hello World!").grid(column=0, row=0)
ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)
root.mainloop()
پس از ایمپورتها، خط بعدی نمونهای از کلاس Tk ایجاد میکند، که Tk را مقداردهی اولیه میکند و مفسر Tcl مرتبط با آن را میسازد. همچنین یک پنجره سطح بالا ایجاد میکند که بهعنوان پنجره ریشه شناخته میشود و بهعنوان پنجره اصلی برنامه عمل میکند.
خط زیر یک ابزارک قاب ایجاد میکند که در این حالت شامل یک برچسب و یک دکمه خواهد بود که در ادامه ایجاد خواهیم کرد. این قاب درون پنجره ریشه جای میگیرد.
خط بعدی یک ابزارک برچسب (label widget) ایجاد میکند که حاوی یک رشتهی متن ثابت است. از متد grid() برای مشخص کردن چیدمان نسبی (موقعیت) برچسب درون ابزارک قاب (frame widget) حاوی آن استفاده میشود، مشابه نحوهی کار جدولها در HTML.
سپس یک ابزارک دکمه ایجاد میشود و در سمت راست برچسب قرار میگیرد. هنگام فشردهشدن، متد destroy() پنجره ریشه را فراخوانی میکند.
در نهایت، متد mainloop() همهچیز را روی صفحهنمایش قرار میدهد و تا زمانی که برنامه خاتمه یابد، به ورودی کاربر پاسخ میدهد.
مفاهیم مهم Tk¶
حتی این برنامهی ساده، مفاهیم کلیدی زیر از Tk را نشان میدهد:
- ابزارکها
رابط کاربری Tkinter از ابزارکهای مجزا تشکیل شده است. هر ابزارک بهصورت یک شیء پایتون نمایش داده میشود که از کلاسهایی مانند
ttk.Frame،ttk.Labelوttk.Buttonنمونهسازی شده است.- سلسلهمراتب ابزارکها
ابزارکها در یک سلسلهمراتب چیده شدهاند. برچسب و دکمه درون یک قاب قرار داشتند که آن قاب نیز به نوبه خود درون پنجره ریشه قرار داشت. هنگام ایجاد هر ابزارک فرزند، ابزارک والد آن بهعنوان اولین آرگومان به سازنده ابزارک ارسال میشود.
- گزینههای پیکربندی
ابزارکها گزینههای پیکربندی دارند که ظاهر و رفتار آنها را تغییر میدهند، مانند متنی که در یک برچسب یا دکمه نمایش داده میشود. کلاسهای مختلف ابزارکها مجموعههای متفاوتی از گزینهها خواهند داشت.
- مدیریت هندسه (geometry management)
ابزارکها بهطور خودکار هنگامی که ایجاد میشوند به رابط کاربری اضافه نمیشوند. یک مدیر چیدمان مانند
gridکنترل میکند که آنها در کجای رابط کاربری قرار بگیرند.- حلقه رویداد
Tkinter تنها زمانی به ورودی کاربر و تغییرات ناشی از برنامه شما واکنش نشان میدهد و حتی نمایش را بهروزرسانی میکند که یک حلقه رویداد بهطور فعال در حال اجرا باشد. اگر برنامه شما حلقه رویداد را اجرا نکند، رابط کاربری شما بهروزرسانی نخواهد شد.
درک اینکه Tkinter چگونه Tcl/Tk را میپوشاند¶
هنگامی که برنامه شما از کلاسها و متدهای Tkinter استفاده میکند، Tkinter بهصورت داخلی رشتههایی را که نشاندهنده دستورات Tcl/Tk هستند، میسازد و آن دستورات را در مفسر Tcl متصل به نمونه Tk برنامه شما اجرا میکند.
چه بخواهید در مستندات مرجع پیمایش کنید، چه بخواهید متد یا گزینه مناسب را پیدا کنید، چه بخواهید برخی کدهای موجود را تطبیق دهید، یا چه بخواهید برنامه Tkinter خود را اشکالزدایی کنید، گاهی اوقات درک اینکه آن دستورات زیربنایی Tcl/Tk چه شکلی هستند، مفید خواهد بود.
برای روشنسازی، در اینجا معادل Tcl/Tk بخش اصلی اسکریپت Tkinter بالا آمده است.
ttk::frame .frm -padding 10
grid .frm
grid [ttk::label .frm.lbl -text "Hello World!"] -column 0 -row 0
grid [ttk::button .frm.btn -text "Quit" -command "destroy ."] -column 1 -row 0
سینتکس Tcl شبیه بسیاری از زبانهای پوسته است؛ در این زبانها، اولین کلمه فرمانی است که اجرا میشود و آرگومانهای آن فرمان پس از آن با فاصله جدا میشوند. بدون ورود به جزئیات زیاد، به موارد زیر توجه کنید:
دستوراتی که برای ایجاد ابزارکها به کار میروند (مانند
ttk::frame) معادل کلاسهای ابزارک در Tkinter هستند.گزینههای ابزارک Tcl (مانند
-text) با آرگومانهای کلیدواژهای در Tkinter متناظر هستند.در Tcl، ابزارکها با یک pathname (مانند
.frm.btn) ارجاع داده میشوند، در حالی که Tkinter از نامها استفاده نمیکند، بلکه از ارجاعهای شیء استفاده میکند.جایگاه یک ابزارک در سلسلهمراتب ابزارکها، در مسیر سلسلهمراتبی آن کدگذاری شده است؛ در این مسیر از
.(نقطه) بهعنوان جداکنندهی مسیر استفاده میشود. مسیر پنجرهی ریشه فقط.(نقطه) است. در Tkinter، سلسلهمراتب نه با مسیر، بلکه با مشخص کردن ابزارک والد هنگام ایجاد هر ابزارک فرزند تعریف میشود.عملیاتی که بهصورت دستورهای جداگانه در Tcl پیادهسازی شدهاند (مانند
gridیاdestroy)، بهصورت متدهایی روی اشیای ابزارک Tkinter ارائه میشوند. همانطور که بهزودی خواهید دید، در موارد دیگر Tcl از مواردی استفاده میکند که به نظر میرسد فراخوانی متد روی اشیای ابزارک باشند و شباهت بیشتری به آنچه در Tkinter استفاده میشود دارند.
چگونه ...؟ چه گزینهای ...؟¶
اگر مطمئن نیستید که چگونه کاری را در Tkinter انجام دهید، و نمیتوانید بلافاصله آن را در آموزش یا مستندات مرجعی که استفاده میکنید پیدا کنید، چند راهکار وجود دارد که میتواند مفید باشد.
نخست، به یاد داشته باشید که جزئیات چگونگی کارکرد هر ابزارک ممکن است در نسخههای مختلف Tkinter و Tcl/Tk متفاوت باشد. اگر در حال جستوجوی مستندات هستید، اطمینان حاصل کنید که با نسخههای پایتون و Tcl/Tk نصبشده بر روی سیستم شما مطابقت دارد.
هنگام جستوجو درباره نحوه استفاده از یک API، دانستن نام دقیق کلاس، گزینه یا متدی که استفاده میکنید مفید است. دروننگری، چه در پوسته تعاملی پایتون و چه با print()، میتواند به شما کمک کند تا آنچه را که نیاز دارید شناسایی کنید.
برای اطلاع از گزینههای پیکربندی در دسترس برای هر ابزارک، متد configure() آن را فراخوانی کنید، که یک دیکشنری حاوی اطلاعات گوناگونی درباره هر شیء، از جمله مقادیر پیشفرض و فعلی آن برمیگرداند. برای دریافت فقط نامهای هر گزینه از keys() استفاده کنید.
btn = ttk.Button(frm, ...)
print(btn.configure().keys())
از آنجا که بیشتر ابزارکها گزینههای پیکربندی مشترک زیادی دارند، میتواند مفید باشد که دریابید کدامیک از آنها مختص یک کلاس ابزارک خاص هستند. مقایسه فهرست گزینهها با فهرست گزینههای یک ابزارک سادهتر، مانند قاب، یکی از راههای انجام این کار است.
print(set(btn.configure().keys()) - set(frm.configure().keys()))
به همین ترتیب، میتوانید متدهای در دسترس برای یک شیء ابزارک را با استفاده از تابع استاندارد dir() پیدا کنید. اگر آن را امتحان کنید، خواهید دید که بیش از ۲۰۰ متد مشترک ابزارک وجود دارد، بنابراین باز هم شناسایی آنهایی که مختص یک کلاس ابزارک هستند، مفید است.
print(dir(btn))
print(set(dir(btn)) - set(dir(frm)))
مدل نخبندی¶
پایتون و Tcl/Tk مدلهای نخبندی بسیار متفاوتی دارند، که tkinter تلاش میکند آنها را به هم متصل کند. اگر از نخها استفاده میکنید، ممکن است لازم باشد از این موضوع آگاه باشید.
یک مفسر پایتون ممکن است نخهای زیادی مرتبط با خود داشته باشد. در Tcl، میتوان چندین نخ ایجاد کرد، اما هر نخ یک نمونه مفسر Tcl جداگانه مرتبط با خود دارد. نخها همچنین میتوانند بیش از یک نمونه مفسر ایجاد کنند، اگرچه از هر نمونه مفسر فقط همان نخی که آن را ایجاد کرده است میتواند استفاده کند.
هر شیء Tk ایجادشده بهوسیلهی tkinter، شامل یک مفسر Tcl است. این شیء همچنین پیگیری میکند که کدام نخ آن مفسر را ایجاد کرده است. فراخوانیهای tkinter را میتوان از هر نخ پایتون انجام داد. بهصورت داخلی، اگر فراخوانی از نخی غیر از نخی که شیء Tk را ایجاد کرده است بیاید، رویدادی به صف رویدادهای مفسر ارسال میشود و هنگامی که اجرا شود، نتیجه به نخ پایتون فراخوان بازگردانده میشود.
برنامههای Tcl/Tk معمولاً رویدادمحور هستند، به این معنا که پس از راهاندازی، مفسر یک حلقه رویداد (یعنی Tk.mainloop) را اجرا میکند و به رویدادها پاسخ میدهد. از آنجا که Tcl/Tk تکنخی است، هندلرهای رویداد باید بهسرعت پاسخ دهند، در غیر این صورت مانع از پردازش سایر رویدادها میشوند. برای اجتناب از این موضوع، محاسبات طولانیمدت نباید در یک هندلر رویداد اجرا شوند، بلکه باید یا با استفاده از زمانسنجها به بخشهای کوچکتر تقسیم شوند یا در نخ دیگری اجرا شوند. این موضوع با بسیاری از تولکیتهای GUI متفاوت است، جایی که GUI در یک نخ کاملاً جداگانه از تمام کد برنامه، از جمله هندلرهای رویداد، اجرا میشود.
اگر مفسر Tcl در حال اجرای حلقه رویداد و پردازش رویدادها نباشد، هر فراخوانی tkinter که از نخهایی غیر از نخی که مفسر Tcl را اجرا میکند انجام شود، شکست خواهد خورد.
تعدادی حالت خاص وجود دارد:
کتابخانههای Tcl/Tk که بدون پشتیبانی از نخ ساخته شدهاند، امروزه نادر هستند: نسخهی همراه Tcl/Tk 8.6 با پشتیبانی از نخ ساخته شده است، بنابراین این حالت تنها در برخی ساختهای قدیمیتر بدون نخ پیش میآید. وقتی کتابخانه آگاه از نخ نباشد،
tkinterکتابخانه را از نخ پایتونی مبدأ فراخوانی میکند، حتی اگر این نخ با نخی که مفسر Tcl را ایجاد کرده است متفاوت باشد. یک قفل سراسری تضمین میکند که در هر زمان تنها یک فراخوانی انجام شود.در حالی که
tkinterبه شما امکان میدهد بیش از یک نمونه از شیءTk(با مفسر مخصوص خود) ایجاد کنید، تمام مفسرهایی که بخشی از یک نخ هستند، یک صف رویداد مشترک دارند که بهسرعت مشکلساز میشود. در عمل، در یک زمان بیش از یک نمونه ازTkایجاد نکنید. در غیر این صورت، بهتر است آنها را در نخهای جداگانه ایجاد کنید و اطمینان حاصل کنید که در حال اجرای نسخهای از Tcl/Tk با پشتیبانی از نخ هستید.هندلرهای رویداد مسدودکننده تنها راه جلوگیری از ورود مجدد مفسر Tcl به حلقه رویداد نیستند. حتی امکان اجرای چندین حلقه رویداد تودرتو یا رها کردن کامل حلقه رویداد نیز وجود دارد. اگر در زمینه رویدادها یا نخها کار پیچیدهای انجام میدهید، از این احتمالات آگاه باشید.
چند تابع منتخب
tkinterوجود دارند که در حال حاضر فقط زمانی کار میکنند که از نخی که مفسر Tcl را ایجاد کرده است فراخوانی شوند.
مرجع دمدستی¶
تنظیم گزینهها¶
گزینهها مواردی مانند رنگ و پهنای حاشیهی یک ابزارک را کنترل میکنند. گزینهها را میتوان به سه روش تنظیم کرد:
- در زمان ایجاد شیء، با استفاده از آرگومانهای کلیدواژهای
fred = Button(self, fg="red", bg="blue")
- پس از ایجاد شیء، رفتار با نام گزینه مانند یک اندیس دیکشنری
fred["fg"] = "red" fred["bg"] = "blue"
- برای بهروزرسانی چندین ویژگی پس از ایجاد شیء، از متد config() استفاده کنید
fred.config(fg="red", bg="blue")
توجه
گزینههای fg و bg استفادهشده در اینجا، و سایر گزینههایی که ظاهر یک ابزارک را کنترل میکنند، به ابزارکهای کلاسیک tkinter تعلق دارند. ابزارکهای دارای تم tkinter.ttk که در مقدمه توصیه شدهاند، آنها را نمیپذیرند؛ در عوض، از کلاس ttk.Style برای سبکدهی به یک ابزارک دارای تم استفاده کنید. ۳ روش تنظیم یک گزینه که در بالا نشان داده شد، به هر دو مجموعهی ابزارک اعمال میشوند.
برای توضیح کامل یک گزینه مشخص و رفتار آن، به صفحات man مربوط به Tk برای ابزارک موردنظر مراجعه کنید.
توجه داشته باشید که صفحههای man برای هر ابزارک، «STANDARD OPTIONS» و «WIDGET SPECIFIC OPTIONS» را فهرست میکنند. مورد اول فهرستی از گزینههایی است که بین بسیاری از ابزارکها مشترک هستند؛ مورد دوم گزینههایی هستند که مخصوص همان ابزارک خاصاند. گزینههای استاندارد در صفحهی man options(3) مستند شدهاند.
در این سند هیچ تمایزی بین گزینههای استاندارد و گزینههای مختص ابزارک قائل نشده است. برخی گزینهها برای برخی انواع ابزارکها کاربرد ندارند. اینکه یک ابزارک مشخص به یک گزینهی خاص پاسخ دهد یا نه، به کلاس آن ابزارک بستگی دارد؛ دکمهها گزینهی command دارند، اما برچسبها ندارند.
گزینههای پشتیبانیشده توسط یک ابزارک مشخص، در صفحهی man همان ابزارک فهرست شدهاند، یا میتوان آنها را در رانتایم با فراخوانی متد config() بدون آرگومان، یا با فراخوانی متد keys() روی آن ابزارک پرسوجو کرد. مقدار بازگشتی این فراخوانیها یک دیکشنری است که کلید آن نام گزینه بهصورت یک رشته (برای مثال، 'relief') است و مقادیر آن تاپلهای ۵تایی هستند.
برخی گزینهها، مانند bg، مترادف گزینههای رایج با نامهای طولانی هستند (bg شکل کوتاهی از "background" است).
اندیس |
معنی |
مثال |
|---|---|---|
0 |
نام گزینه |
|
1 |
نام گزینه برای جستوجو در پایگاه داده |
|
2 |
کلاس گزینه برای جستوجوی پایگاه داده |
|
3 |
مقدار پیشفرض |
|
4 |
مقدار فعلی |
|
مثال:
>>> print(fred.config())
{'relief': ('relief', 'relief', 'Relief', 'raised', 'groove')}
البته، دیکشنری چاپشده شامل همه گزینههای در دسترس و مقدارهای آنها خواهد بود. این فقط بهعنوان یک مثال در نظر گرفته شده است.
مدیریت هندسه¶
ایجاد یک ابزارک، آن را نمایش نمیدهد. یک ابزارک تنها پس از آنکه به یک مدیر چیدمان سپرده شود، ظاهر میشود؛ مدیری که اندازه و موقعیت آن را درون ظرف حاوی آن تعیین میکند و با تغییر اندازهی ظرف یا تغییر محتوای آن، چیدمان را بهروز نگه میدارد. فراموش کردن فراخوانی یک مدیر چیدمان، اشتباهی رایج در مراحل اولیه است: ابزارک ایجاد میشود، اما هیچ چیز نمایش داده نمیشود.
Tk سه مدیر چیدمان ارائه میدهد. هر یک از این مدیران توسط همه ابزارکها به ارث برده میشود، بنابراین هر ابزارکی میتواند توسط هر کدام از آنها مدیریت شود (اما هشدار زیر را درباره ناسازگاری grid و pack ببینید). انتخاب به نوع چیدمانی بستگی دارد که شما میخواهید.
gridابزارکها را در یک جدول دوبعدی از ردیفها و ستونها قرار میدهد. این، انعطافپذیرترین مدیر است و گزینهای است که بهطور پیشفرض باید به آن رجوع کرد: اغلب میتوان چیدمانهایی را که در غیر این صورت به چندین قاب تودرتو نیاز دارند، بهصورت یک شبکه واحد بیان کرد، و میتوان مشخص کرد که ردیفها و ستونها چگونه فضای اضافی را جذب کنند.
ttk.Label(frm, text="Name:").grid(column=0, row=0, sticky="w") ttk.Entry(frm).grid(column=1, row=0) ttk.Button(frm, text="OK").grid(column=1, row=1, sticky="e")
packابزارکها را در یکی از سمتهای ظرفشان روی هم میچیند --
"top"(پیشفرض)،"bottom"،"left"یا"right"-- و میتواند باعث شود که آنها فضای باقیمانده را پر کنند یا در آن گسترش یابند. این برای چیدمانهای ساده مناسب است، مانند یک ردیف یا ستون واحد از ابزارکها یا یک ناحیهی محتوا که میان یک نوار ابزار و یک نوار وضعیت محصور شده است.toolbar.pack(side="top", fill="x") status.pack(side="bottom", fill="x") body.pack(side="left", expand=True, fill="both")
placeهر ابزارک را در یک مکان مشخص قرار میدهد؛ این مکان یا بهصورت فاصلههای مطلق صفحهنمایش یا بهصورت کسری از اندازهی ظرف داده میشود. این روش بیشترین کنترل را فراهم میکند، اما کمترین رفتار خودکار را دارد و کمتر از همه استفاده میشود؛ این روش برای موارد خاصی مانند ابزارکهای همپوشان یا چیدمانهای سفارشی دقیق مناسب است.
background.place(x=0, y=0, relwidth=1.0, relheight=1.0) badge.place(relx=1.0, rely=0.0, anchor="ne")
چیدمانها با تودرتو کردن ساخته میشوند: ابزارکها، از جمله قابها، را با grid یا pack درون یک قاب یا پنجرهی سطح بالا قرار دهید. پنجرههای سطح بالا توسط مدیر پنجرهی سیستمعامل مدیریت میشوند. ابزارکهای کلاسیک و ابزارکهای تمدار tkinter.ttk را میتوان بهجای یکدیگر مدیریت کرد.
هشدار
pack() و grid() را برای دو ابزارکی که یک ظرف مشترک دارند اعمال نکنید. این دو مدیر بر سر اندازهها به روشهایی ناسازگار با یکدیگر مذاکره میکنند و ممکن است برنامه آویزان شود، زیرا آنها بهطور مکرر ظرف را در تقابل با یکدیگر تغییر اندازه میدهند. برای ترکیب این دو، ابزارکهای هر مدیر را در یک قاب جداگانه نگه دارید.
مجموعه کامل گزینههای پذیرفتهشده توسط هر مدیر، به همراه مقادیر و پیشفرضهای آنها، در Grid.grid_configure()، Pack.pack_configure() و Place.place_configure() مستند شده است؛ همچنین صفحههای راهنمای grid(3tk)، pack(3tk) و place(3tk) را ببینید.
جفتسازی متغیرهای ابزارک¶
برخی ابزارکها میتوانند مقدار جاری خود را مستقیماً به یک متغیر برنامه متصل کنند، تا این دو با هم همگام بمانند. گزینههایی مانند variable، textvariable، value، onvalue و offvalue این اتصال را برقرار میکنند: هنگامی که کاربر ابزارک را تغییر میدهد، متغیر بهروزرسانی میشود، و هنگامی که متغیر تنظیم میشود، ابزارک بازترسیم میشود تا با آن هماهنگ شود.
یک ابزارک تنها میتواند به یک شیء Variable پیوند داده شود، نه به یک متغیر معمولی پایتون. این محدودیتی برای tkinter نیست، بلکه پیامد چگونگی تفاوت این دو زبان است: این پیوند به این موضوع متکی است که هر بار که مقدار تغییر میکند، به Tcl اطلاع داده شود، و پایتون هیچ راهی برای واکنش نشان دادن هنگامی که یک متغیر ساده دوباره مقداردهی میشود فراهم نمیکند. یک Variable با نگه داشتن مقدار خود درون مفسر Tcl و در دسترس قرار دادن آن از طریق متدهای صریح get() و set() از این مسئله اجتناب میکند.
زیرکلاسهای آماده انواع رایج را پوشش میدهند: StringVar، IntVar، DoubleVar و BooleanVar. یکی را بهعنوان گزینهی textvariable (یا variable) یک ابزارک ارسال کنید، سپس آن را با get() و set() بخوانید و بهروزرسانی کنید؛ ابزارک آن را بدون هیچ کار بیشتری از سوی شما پیگیری میکند.
ارجاعی به متغیر را تا زمانی که ابزارک از آن استفاده میکند، نگه دارید — برای مثال با ذخیرهکردن آن بهعنوان یک ویژگی. یک Variable که زبالهروبی میشود، متغیر Tcl زیربنایی خود را حذف میکند و اتصال به ابزارک را قطع میکند (به Variable مراجعه کنید).
برای مثال:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# Create the application variable and give it an initial value.
contents = tk.StringVar(value="this is a variable")
# Tell the entry widget to track the variable.
entry = ttk.Entry(root, textvariable=contents)
entry.pack()
# Print the current value whenever the user presses Return.
def print_contents(event):
print("The current entry content is:", contents.get())
entry.bind("<Return>", print_contents)
# Setting the variable from the program updates the entry through the
# same link.
def clear():
contents.set("")
ttk.Button(root, text="Clear", command=clear).pack()
root.mainloop()
مدیر پنجره¶
مدیر پنجره بخشی از میزکار است که مسئول نوار عنوان، قاب و کنترلهایی که اطراف هر پنجرهی سطح بالا ترسیم میشوند، و همچنین مواردی مانند عنوان، موقعیت، اندازه و نماد آن است. Tk دسترسی به این موارد را از طریق میکساین Wm فراهم میکند، که پنجرهی ریشهی Tk و هر Toplevel از آن ارث میبرند. بنابراین شما متدهای مدیر پنجره را مستقیماً روی یک پنجرهی سطح بالا فراخوانی میکنید. هر متد یک نام کوتاه و یک نام معادل با پیشوند wm_ دارد، برای مثال title() و wm_title().
این متدها بر پنجرهی سطح بالا عمل میکنند، چه محتوای آن از ابزارکهای کلاسیک ساخته شده باشد و چه از ابزارکهای طرحدارِ tkinter.ttk. برای دسترسی به پنجرهی سطح بالایی که حاوی یک ابزارک دلخواه است، متد winfo_toplevel() آن را فراخوانی کنید.
برای مثال:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("My Application")
root.geometry("640x480")
root.minsize(320, 240)
ttk.Label(root, text="Hello").pack(padx=20, pady=20)
root.mainloop()
برای مجموعه کامل متدهای مدیر پنجره، Wm را ببینید.
انواع دادهی گزینههای Tk¶
بسیاری از گزینههای ابزارک که در مرجع مستند شدهاند، مقادیری از تعداد اندکی از انواع رایج را میپذیرند که در اینجا توضیح داده شدهاند.
- لنگر
مقادیر مجاز، جهتهای قطبنما هستند:
"n"،"ne"،"e"،"se"،"s"،"sw"،"w"،"nw"و همچنین"center".- بیتمپ
ده بیتمپ توکار نامدار وجود دارد:
'error'،'gray12'،'gray25'،'gray50'،'gray75'،'hourglass'،'info'،'questhead'،'question'،'warning'. برای مشخص کردن نام پرونده یک بیتمپ X، مسیر کامل پرونده را با یک@پیش از آن وارد کنید، مانند"@/usr/contrib/bitmap/gumby.bit".- بولی
میتوانید اعداد صحیح 0 یا 1 یا رشتههای
"yes"یا"no"را ارسال کنید.- کالبک
این هر تابع پایتونی است که هیچ آرگومانی نمیگیرد. برای مثال:
def print_it(): print("hi there") fred["command"] = print_it
- رنگ
میتوان رنگها را بهصورت نام رنگهای X در پرونده rgb.txt، یا بهصورت رشتههایی که نشاندهنده مقادیر RGB در بازههای ۴ بیتی:
"#RGB"، ۸ بیتی:"#RRGGBB"، ۱۲ بیتی:"#RRRGGGBBB"یا ۱۶ بیتی:"#RRRRGGGGBBBB"هستند، مشخص کرد؛ در اینجا R، G و B نماینده هر رقم مبنای شانزده معتبر هستند. برای فهرست رنگهای نامگذاریشده، صفحه راهنمای colors(3tk) را ببینید.- مکاننما
نام مکاننما ماوسی که هنگام قرار داشتن اشارهگر روی ابزارک نمایش داده میشود. Tk مجموعهای قابلحمل از نامهای مکاننما را فراهم میکند که در همهی سکوها در دسترس است (برای مثال
"arrow"،"watch"،"cross"یا"hand2")؛ همچنین میتوان از نامهای استاندارد مکاننما X درcursorfont.hبدون پیشوندXC_استفاده کرد (بنابراینXC_hand2به"hand2"تبدیل میشود). فهرست کامل نامها، از جمله نامهای مختص سکو، در صفحهی راهنمای cursors(3tk) آمده است. شما همچنین میتوانید یک پرونده بیتمپ و نقاب دلخواه خودتان را مشخص کنید. در ویندوز میتوان مستقیماً از یک پرونده مکاننما (.curیا.ani) استفاده کرد، به این صورت که مسیر آن با پیشوند@داده شود، مانند"@C:/cursors/bart.ani".- فاصله
فاصلههای صفحه را میتوان بهصورت پیکسل یا فاصلههای مطلق مشخص کرد. پیکسلها بهصورت عدد و فاصلههای مطلق بهصورت رشته داده میشوند، بهگونهای که نویسه پایانی نشاندهنده یکا است:
cبرای سانتیمتر،iبرای اینچ،mبرای میلیمتر،pبرای نقطههای چاپگر. برای مثال، ۳٫۵ اینچ بهصورت"3.5i"بیان میشود.- قلم
Tk از یک توصیف قلم مانند
{courier 10 bold}استفاده میکند؛ درtkinterاین مورد بهطور طبیعی بهصورت تاپلی از(family, size, *styles)(یا بهصورت رشتهی معادل"Courier 10 bold") ارسال میشود. اندازههای قلم با اعداد مثبت بر حسب نقطه اندازهگیری میشوند؛ اندازهها با اعداد منفی بر حسب پیکسل اندازهگیری میشوند.- هندسه
این یک رشته به شکل
widthxheightاست، که در آن عرض و ارتفاع برای بیشتر ابزارکها بر حسب پیکسل اندازهگیری میشوند (برای ابزارکهایی که متن نمایش میدهند، بر حسب نویسه). برای مثال:fred["geometry"] = "200x100".- تراز کردن
مقادیر مجاز، رشتههای زیر هستند:
"left"،"center"و"right".- ناحیه
این یک رشته با چهار عنصر جداشده با فاصله است که هر کدام یک فاصلهی معتبر است (بالا را ببینید). برای مثال:
"2 3 4 5"و"3i 2i 4.5i 2i"و"3c 2c 4c 10.43c"همگی ناحیههای معتبر هستند.- برجستگی
مشخص میکند که سبک حاشیه یک ابزارک چه خواهد بود. مقادیر مجاز عبارتاند از:
"raised"،"sunken"،"flat"،"groove"،"ridge"و"solid".- scrollcommand
این تقریباً همیشه متد
set()یک ابزارک نوار پیمایش است، اما میتواند هر متدی از یک ابزارک باشد که یک آرگومان میپذیرد.- دربرگرفتن
باید یکی از موارد زیر باشد:
"none"،"char"یا"word".
اتصالها و رویدادها¶
متد bind از دستور ابزارک (widget command) به شما امکان میدهد رویدادهای خاصی را زیر نظر بگیرید و کاری کنید که یک تابع کالبک هنگام وقوع آن نوع رویداد فعال شود. قالب متد bind به این صورت است:
def bind(self, sequence, func, add=''):
که در آن:
- دنباله
رشتهای است که نوع رویداد هدف را نشان میدهد. رویدادهای فیزیکی از قالب
<modifier-modifier-type-detail>استفاده میکنند (برای مثال"<Enter>"یا"<Control-Button-1>")؛ رویدادهای مجازی تعریفشده توسط برنامه از علامتهای زاویهای دوتایی استفاده میکنند، مانند"<<Paste>>". (برای جزئیات، صفحه راهنمای bind(3tk) را ببینید.)- تابع
یک تابع پایتون است که یک آرگومان دریافت میکند و هنگام وقوع رویداد فراخوانی میشود. یک نمونه از Event بهعنوان آرگومان ارسال خواهد شد. (توابعی که به این شکل بهکار گرفته میشوند، معمولاً با نام کالبکها شناخته میشوند.)
- افزودن
اختیاری است و میتواند
''یا'+'باشد. ارسال یک رشته خالی نشان میدهد که این اتصال جایگزین تمام اتصالهای دیگری میشود که این رویداد با آنها مرتبط است. ارسال'+'به این معناست که این تابع به فهرست توابعی اضافه میشود که به این نوع رویداد متصل هستند.
برای مثال:
def turn_red(self, event):
event.widget["activeforeground"] = "red"
self.button.bind("<Enter>", self.turn_red)
توجه کنید که چگونه در کالبک turn_red() به فیلد ابزارک رویداد دسترسی پیدا میشود. این فیلد حاوی ابزارکی است که رویداد X را گرفته است. جدول زیر سایر فیلدهای رویداد را که میتوانید به آنها دسترسی داشته باشید، و نحوهی نمایش آنها در Tk فهرست میکند، که میتواند هنگام مراجعه به صفحات راهنمای Tk مفید باشد.
Tk |
فیلد رویداد Tkinter |
Tk |
فیلد رویداد Tkinter |
|---|---|---|---|
%f |
فوکوس |
%A |
نویسه |
%h |
ارتفاع |
%E |
send_event |
%k |
کد کلید (keycode) |
%K |
keysym |
%s |
وضعیت |
%N |
keysym_num |
%t |
زمان |
%T |
نوع |
%w |
عرض |
%W |
ابزارک |
%x |
x |
%X |
x_root |
%y |
y |
%Y |
y_root |
%# |
سریالی |
%b |
شماره |
%d |
جزئیات |
%D |
دلتا |
پارامتر add در بالا فقط بر مقیدسازیهایی که خودتان ایجاد میکنید تأثیر میگذارد. هر ابزارک همچنین مقیدسازیهای کلاس را به ارث میبرد که رفتار استاندارد آن را پیادهسازی میکنند — برای مثال، یک ابزارک Text، Control-t را به جابهجایی دو نویسه متصل میکند. این اتصالها در بخش مقیدسازیهای صفحه راهنمای Tk مربوط به ابزارک (مانند text(3tk) یا entry(3tk)) توضیح داده شدهاند.
مقیدسازیهای کلاس جداگانه از مقیدسازیهای خودتان پردازش میشوند، بنابراین اگر خودتان رویدادی را متصل کنید، جایگزین اتصال پیشفرض نمیشود؛ هر دو اجرا میشوند. برای جلوگیری از یک اتصال پیشفرض ناخواسته، رویداد را روی ابزارک متصل کنید و رشته "break" را از کالبک خود برگردانید.
پارامتر اندیس¶
تعدادی از ابزارکها نیازمند ارسال پارامترهای «اندیس» هستند. این پارامترها برای اشاره به مکانی مشخص در یک ابزارک Text، یا نویسههایی خاص در یک ابزارک Entry، یا آیتمهای منوی خاصی در یک ابزارک Menu استفاده میشوند.
- اندیسهای ابزارک Entry (index، view index و غیره)
ابزارکهای Entry دارای متدها و گزینههایی هستند که به موقعیتهای نویسه در متن نمایشدادهشده اشاره میکنند. هر زمان که به یک اندیس نیاز باشد، میتوانید موارد زیر را وارد کنید:
عدد صحیحی که به موقعیت عددی یک نویسه اشاره دارد و از ابتدای متن، با شروع از ۰ شمرده میشود؛
رشتهی
"anchor"، که به نقطهی لنگر انتخاب اشاره دارد؛ این نقطه با متدهای انتخاب ابزارک تنظیم میشود؛رشته
"end"، که به موقعیت درست پس از آخرین نویسه اشاره دارد؛رشتهی
"insert"، که به نویسهی درست پس از مکاننمای درج اشاره دارد؛رشتههای
"sel.first"و"sel.last"، که به اولین نویسهی انتخاب و موقعیت درست پس از آخرین نویسه اشاره دارند (اگر انتخابی وجود نداشته باشد، استفاده از اینها خطا است)؛رشتهای متشکل از
@که پس از آن یک عدد صحیح آمده است، مانند"@6"، که در آن عدد صحیح بهعنوان مختصات پیکسلی x در دستگاه مختصات ورودی تفسیر میشود و نویسهای را انتخاب میکند که آن نقطه را در بر میگیرد.
- اندیسهای ابزارک Text
نمادگذاری اندیس برای ابزارکهای Text بسیار غنی است و بهترین توصیف آن در صفحات راهنمای Tk آمده است.
- اندیسهای منو (menu.invoke()، menu.entryconfig() و غیره)
برخی گزینهها و متدهای مربوط به منوها، آیتمهای خاصی از منو را دستکاری میکنند. هر زمان که برای یک گزینه یا پارامتر به اندیس منو نیاز باشد، میتوانید موارد زیر را وارد کنید:
عدد صحیحی که به موقعیت عددی ورودی در ابزارک اشاره دارد، از بالا شمرده میشود و از ۰ آغاز میشود؛
رشته
"active"، که به موقعیتی از منو اشاره میکند که در حال حاضر زیر مکاننما قرار دارد؛رشتهی
"last"که به آخرین آیتم منو اشاره میکند؛رشتهای متشکل از
@و بهدنبال آن یک عدد صحیح، مانند"@6"، که در آن عدد صحیح بهعنوان مختصات پیکسلی y در دستگاه مختصات منو تفسیر میشود؛رشته
"none"، که نشاندهندهی نبود هیچ ورودی منو است، بیشتر همراه با menu.activate() برای غیرفعال کردن همهی ورودیها استفاده میشود، و در نهایت،یک رشتهی لفظی که با پیمایش منو از بالا به پایین، بهعنوان الگو با برچسب آیتم منو تطبیق داده میشود. توجه داشته باشید که این نوع اندیس پس از همهی انواع دیگر در نظر گرفته میشود، به این معنا که تطابقها برای آیتمهای منو با برچسبهای
last،activeیاnoneممکن است در عوض بهعنوان مقادیر لفظی بالا تفسیر شوند.
تصاویر¶
تصاویری در قالبهای مختلف را میتوان از طریق زیرکلاس متناظرِ tkinter.Image ایجاد کرد:
BitmapImageبرای تصاویر در قالب XBM.PhotoImageبرای تصاویر در قالبهای PGM، PPM، GIF و PNG. قالب آخر از Tk 8.6 پشتیبانی میشود.
هر نوع تصویری از طریق گزینه file یا data ایجاد میشود (گزینههای دیگری نیز در دسترس است).
تغییر یافته در نسخهی 3.13: متد copy_replace() به کلاس PhotoImage افزوده شد تا یک ناحیه را از یک تصویر به تصویر دیگر کپی کند، با امکان بزرگنمایی پیکسلی و/یا زیرنمونهبرداری. پارامتر from_coords به متدهای copy()، zoom() و subsample() کلاس PhotoImage افزوده شد. پارامترهای zoom و subsample به متد copy() کلاس PhotoImage افزوده شد.
سپس میتوان از شیء تصویر در هر جایی که گزینهی image در برخی ابزارکها پشتیبانی شود استفاده کرد (برای مثال، برچسبها، دکمهها و منوها). در این موارد، Tk مرجعی به تصویر نگه نمیدارد. وقتی آخرین مرجع پایتون به شیء تصویر حذف شود، دادهی تصویر نیز حذف میشود و Tk هر جا که از تصویر استفاده شده باشد یک جعبهی خالی نمایش میدهد.
همچنین ملاحظه نمائید
بستهی Pillow پشتیبانی از قالبهایی مانند BMP، JPEG، TIFF و WebP را در کنار سایر قالبها اضافه میکند.
مرجع¶
این بخش مستندات کلاسها، متدها، توابع و ثابتهای ماژول tkinter را ارائه میدهد. بیشتر آنها پوششی برای دستورات Tcl/Tk هستند؛ برای فهرست کامل گزینههای ابزارک و جزئیات بیشتر، به صفحههای راهنمای رسمی Tcl/Tk مراجعه کنید.
- exception tkinter.TclError¶
استثنایی که هنگام شکست یک فراخوانی به مفسر Tcl پرتاب میشود، برای مثال هنگامی که به یک ابزارک گزینهای ناشناخته یا مقداری نامعتبر داده شود.
کلاسهای پایه و میکساین¶
- class tkinter.Misc¶
کلاس
Miscیک کلاس میکساین است کهTkآن را به ارث میبرد و هر ابزارک نیز از طریقBaseWidgetآن را به ارث میبرد. این کلاس مجموعه بزرگی از متدهای مشترک میان همهی اشیای Tk را فراهم میکند: پرسوجوی اطلاعات پنجره، مدیریت اتصالهای رویداد و حلقهی رویداد، کنترل تمرکز صفحهکلید و گرفتن اشارهگر، دسترسی به گزینش، بریدهدان و پایگاه دادهی گزینهها، و خدمات گوناگون سودمندی و دروننگری. از آنجا که این متدها به ارث برده میشوند، برای هر ابزارک و برای شیء برنامهیTkدر دسترس هستند و به جای تکرار برای هر ابزارک، در اینجا یک بار مستند شدهاند.- cget(key)¶
مقدار فعلی گزینهی پیکربندی با نام key برای این ابزارک را بهصورت یک رشته برمیگرداند. عبارت
widget[key]معادل است و میتوانید بهجای آن از این عبارت استفاده کنید.
- configure(cnf=None, **kw)¶
گزینههای پیکربندی ابزارک را پرسوجو یا اصلاح میکند. بدون آرگومان، یک دیکشنری برمیگرداند که هر نام گزینهی موجود را به یک تاپل توصیفکنندهی آن (نام آن، نام منبع X، کلاس منبع X، مقدار پیشفرض و مقدار فعلی) نگاشت میکند. اگر یک نام گزینه بهصورت یک رشته داده شود، فقط تاپل همان گزینه را برمیگرداند. اگر یک یا چند آرگومان کلیدواژهای داده شود، یا یک دیکشنری بهعنوان cnf ارسال شود، هر گزینهی نامبرده را به مقدار متناظر تنظیم میکند؛ عبارت
widget[key] = valueیک گزینه را به همین روش تنظیم میکند.config()نام مستعارconfigure()است.
- keys()¶
فهرستی از نامهای تمام گزینههای پیکربندی این ابزارک را برمیگرداند.
- getboolean(s)¶
رشته s را بهعنوان یک بولی Tcl تفسیر میکند و
boolمتناظر را برمیگرداند. Tcl مقادیری مانند'1'،'0'،'yes'،'no'،'true'و'false'را میپذیرد. اگر s یک بولی معتبر نباشد،ValueErrorرا پرتاب میکند.
- getdouble(s)¶
رشتهی s را بهعنوان یک عدد ممیز شناور Tcl تفسیر میکند و آن را بهصورت یک
floatبرمیگرداند. اگر s یک عدد معتبر نباشد،ValueErrorپرتاب میشود.اضافه شده در نسخهی 3.5.
- getint(s)¶
رشته s را بهعنوان یک عدد صحیح Tcl تفسیر میکند و آن را بهصورت یک
intبرمیگرداند. اگر s یک عدد صحیح معتبر نباشد،ValueErrorپرتاب میشود.
- getvar(name)¶
مقدار متغیر سراسری Tcl به نام name را برمیگرداند.
- setvar(name, value)¶
متغیر سراسری Tcl به نام name را برابر با value قرار دهید.
متدهای
getvar()وsetvar()دسترسی مستقیم به متغیرهای Tcl را فراهم میکنند. در بیشتر کدها، بهجای آن از زیرکلاسی ازVariableمانندStringVarیاIntVarاستفاده خواهید کرد، که یک متغیر Tcl را دربر میگیرد و مقدار آن را به یک نوع پایتون و بالعکس تبدیل میکند.
- register(func, subst=None, needcleanup=1)¶
شیء فراخوانیپذیر پایتون func را بهعنوان یک فرمان Tcl ثبت میکند و نام فرمان جدید را بهصورت یک رشته برمیگرداند. هر زمان که Tcl آن فرمان را فراخوانی کند، func فراخوانی میشود؛ اگر subst داده شده باشد، ابتدا روی آرگومانهای فرمان اعمال میشود. این سازوکاری است که بهصورت داخلی برای تبدیل کالبکهای پایتون به نامهای فرمانی که به گزینههای Tk مانند command داده میشوند، استفاده میشود. مگر اینکه needcleanup برابر false باشد، فرمان بهطور خودکار هنگام نابود شدن ابزارک حذف میشود.
تغییر یافته در نسخهی 3.13: آرگومانهای ارسالشده به func دیگر به رشته تبدیل نمیشوند.
- deletecommand(name)¶
فرمان Tcl با نام name را حذف میکند، مانند فرمانی که پیشتر توسط
register()برگردانده شده است.
- nametowidget(name)¶
نمونهی ابزارک متناظر با نام مسیر Tk بهنام name را برمیگرداند.
- send(interp, cmd, *args)¶
فرمان Tcl cmd را، به همراه args دادهشده، به مفسر Tcl ثبتشده با نام interp ارسال کنید و نتیجهی آن را برگردانید. این قابلیت در همهی سکوها در دسترس نیست.
- destroy()¶
این ابزارک و همهی ابزارکهای زیرمجموعهی آن را نابود کنید و دستورات Tcl مرتبط با آنها را حذف کنید.
- tkraise(aboveThis=None)¶
این ابزارک را در ترتیب پشته بالا بیاورید تا روی ابزارکهای همسطح خود رسم شود. اگر aboveThis داده شود، در عوض ابزارک درست بالای آن در ترتیب پشته جابهجا میشود.
lift()نام مستعاری ازtkraise()است.
- lower(belowThis=None)¶
این ابزارک را در ترتیب پشتهای (stacking order) پایین ببرید تا زیر همسطحهای خود ترسیم شود. اگر belowThis داده شده باشد، در عوض ابزارک دقیقاً زیر آن در ترتیب پشتهای جابهجا میشود.
tkraise()/lift()وlower()توسط ابزارکCanvasبازنویسی شدهاند؛ در این ابزارک، آنها بهجای آن، آیتمهای Canvas را دوباره پشتهبندی میکنند.
- image_names()¶
نام همهی تصاویری را که در حال حاضر در مفسر Tcl وجود دارند، برمیگرداند.
این مورد توسط ابزارک
Textبازنویسی میشود، که در آنimage_names()در عوض نام تصاویر تعبیهشدهی آن را برمیگرداند.
- image_types()¶
انواع تصویر در دسترس را برمیگرداند، مانند
'photo'و'bitmap'.
- grid_anchor(anchor=None)¶
لنگر را تنظیم کنید؛ این لنگر تعیین میکند که وقتی ظرف بزرگتر از شبکه است و هیچ ردیف یا ستونی وزن غیرصفر ندارد، شبکه در کجای این ظرف قرار گیرد. anchor یکی از رشتههای لنگر معمول است، مانند
'nw'(پیشفرض) یا'center'. اگر این متد بدون آرگومان فراخوانی شود، هیچ تأثیری ندارد.anchor()نام مستعارgrid_anchor()است.اضافه شده در نسخهی 3.3.
- grid_bbox(column=None, row=None, col2=None, row2=None)¶
جعبهی محدودکننده یک ناحیه از شبکهی چیدهشده در این ظرف را بر حسب پیکسل، بهصورت یک ۴تایی
(xoffset, yoffset, width, height)برمیگرداند. بدون آرگومان، جعبهی محدودکننده کل شبکه برگردانده میشود. اگر column و row داده شده باشند، جعبه از سلول در ردیف ۰ و ستون ۰ تا آن سلول امتداد دارد؛ اگر col2 و row2 نیز داده شده باشند، از سلول (column، row) تا سلول (col2، row2) امتداد دارد.bbox()نام مستعارgrid_bbox()است، بهجز درCanvas،Listbox،Spinbox،Text،ttk.Entryوttk.Treeview، که متدbbox()خود را فراهم میکنند.
- grid_columnconfigure(index, cnf={}, **kw)¶
ویژگیهای ستون (یا ستونهای) index از شبکهی مدیریتشده توسط این ظرف را بپرسید یا تنظیم کنید. index میتواند یک شماره ستون باشد؛ هنگام تنظیم گزینهها، همچنین میتواند فهرستی از شمارههای ستون، رشتهی
'all'برای تأثیر بر همهی ستونها، یا یک ابزارک فرزند باشد که ستونهای اشغالشدهی آن تحت تأثیر قرار میگیرند. گزینههای پشتیبانیشده عبارتند از:- minsize
حداقل اندازهی ستون، بر حسب پیکسل.
- weight
یک عدد صحیح که تعیین میکند چه مقدار از فضای اضافی به ستون اختصاص داده شود. وزن
0ستون را در اندازه درخواستی خود نگه میدارد، و ستونی با وزن ۲ دو برابر سریعتر از ستونی با وزن ۱ رشد میکند.- uniform
نام یک گروه یکنواخت (uniform group). ستونهایی که یک نام گروه غیرخالی مشترک دارند، در اندازههایی نگه داشته میشوند که دقیقاً متناسب با وزنهایشان است.
- pad
فضای اضافی، بر حسب پیکسل، که هنگام محاسبهی اندازهی ستون، به بزرگترین ابزارک موجود در ستون افزوده میشود.
با یک نام گزینه، مقدار آن گزینه را برمیگرداند؛ بدون هیچ گزینهای، یک دیکشنری از همهی آنها را برمیگرداند.
columnconfigure()نام مستعاری ازgrid_columnconfigure()است.
- grid_rowconfigure(index, cnf={}, **kw)¶
ویژگیهای ردیف (یا ردیفهای) index از شبکه مدیریتشده توسط این ظرف را پرسوجو یا تنظیم کنید. تفسیر index همانند
grid_columnconfigure()است و گزینههای پشتیبانیشده (minsize، weight، uniform و pad) یکسان هستند، با این تفاوت که بهجای ستون، بر ردیف اعمال میشوند.rowconfigure()نام مستعاری ازgrid_rowconfigure()است.
- grid_location(x, y)¶
(column, row)مربوط به سلول شبکهای که پیکسلی در موقعیت (x, y) را در بر دارد، برمیگرداند؛ این موقعیت بر حسب پیکسل نسبت به این ظرف داده شده است. برای موقعیتهای بالاتر از شبکه یا سمت چپ آن، برای مختصات متناظر-1برگردانده میشود.
- grid_propagate()¶
- grid_propagate(flag)
انتشار هندسه (geometry propagation) را برای این ظرف، وقتی فرزندان خود را با مدیر هندسهی grid مدیریت میکند، فعال یا غیرفعال کنید. وقتی flag درست باشد، ظرف اندازهی خود را تغییر میدهد تا با اندازههای درخواستشدهی فرزندان خود متناسب شود؛ وقتی نادرست باشد، اندازهی آن تحت کنترل شما باقی میماند. اگر بدون آرگومان فراخوانی شود، تنظیم فعلی را بهصورت یک مقدار بولی برمیگرداند.
- grid_size()¶
اندازهی شبکهی مدیریتشده توسط این ظرف را بهصورت یک تاپل
(columns, rows)برمیگرداند.size()نام مستعاری ازgrid_size()است، بهجز در ابزارکListbox، که متدsize()خود را ارائه میدهد.
- grid_slaves(row=None, column=None)¶
فهرستی از ابزارکهای فرزند مدیریتشده در شبکهی این ظرف را برمیگرداند، بهطوری که آخرین ابزارک مدیریتشده در ابتدا قرار دارد. اگر row یا column داده شود، فقط ابزارکهای فرزند موجود در آن ردیف یا ستون برگردانده میشوند.
- pack_propagate()¶
- pack_propagate(flag)
فعال یا غیرفعال کردن انتشار هندسه برای این ظرف (container) هنگامی که فرزندان خود را با مدیر هندسهی pack مدیریت میکند. وقتی flag درست باشد، ظرف اندازهی خود را متناسب با اندازههای درخواستی فرزندان تغییر میدهد؛ وقتی نادرست باشد، اندازهی آن تحت کنترل شما باقی میماند. در صورت فراخوانی بدون آرگومان، تنظیم فعلی را بهصورت یک مقدار بولی برمیگرداند.
propagate()نام مستعاری ازpack_propagate()است.
- pack_slaves()¶
فهرستی از ابزارکهای فرزند مدیریتشده توسط این ظرف با مدیر چیدمان pack را به ترتیب چیدمان pack برمیگرداند.
slaves()نام مستعارpack_slaves()است.
- place_slaves()¶
فهرستی از ابزارکهای فرزند این ظرف را که با مدیر چیدمان place مدیریت میشوند، برمیگرداند.
- bind(sequence=None, func=None, add=None)¶
الگوی رویداد sequence را در این ابزارک به شیء فراخوانیپذیر func متصل کنید.
sequence یک الگوی رویداد است، مانند
'<Button-1>'(یک کلیک ماوس) یا'<KeyPress-a>'، و بهصورت اختیاری میتواند الحاقی از چندین الگوی مشابه باشد که باید با فاصلهای کوتاه پس از یکدیگر رخ دهند. هنگامی که رویداد رخ میدهد، func با یک نمونه ازEventکه رویداد را توصیف میکند، بهعنوان تنها آرگومان فراخوانی میشود؛ اگر func رشتهی'break'را برگرداند، هیچ پیوند دیگری برای رویداد فراخوانی نمیشود.اگر add درست باشد، func به توابعی که از قبل به sequence متصل شدهاند اضافه میشود؛ در غیر این صورت، جایگزین آنها میشود. این اتصال تنها برای این ابزارک اعمال میشود.
bind()یک شناسهی رشتهای (یک funcid) برمیگرداند که بعداً میتوان آن را بهunbind()فرستاد تا اتصال را بدون نشت دستور Tcl مرتبط حذف کرد.اگر func حذف شود، مقیدسازیهای کنونی مرتبط با sequence را برمیگرداند؛ اگر sequence نیز حذف شود، فهرستی از همه دنبالههایی را که برای آنها مقیدسازیهایی روی این ابزارک وجود دارد برمیگرداند.
- bind_class(className, sequence=None, func=None, add=None)¶
مانند
bind()، اما func را به برچسب مقیدسازی className متصل میکند، نه به یک ابزارک واحد، تا مقیدسازی به هر ابزارکی که آن برچسب را دارد اعمال شود. className معمولاً نام یک کلاس ابزارک است، مانند'Button'، که در این صورت مقیدسازی بر همه ابزارکهای آن کلاس اثر میگذارد. مجموعه برچسبهای مقیدسازی برای یک ابزارک را میتوان باbindtags()بررسی و تغییر داد.آرگومانهای باقیمانده و مقدار بازگشتی همانند
bind()هستند.
- bind_all(sequence=None, func=None, add=None)¶
مانند
bind()، اما func را به برچسب مقیدسازی ویژهی'all'متصل میکند، تا این مقیدسازی به تمام ابزارکهای برنامه اعمال شود.آرگومانهای باقیمانده و مقدار بازگشتی همانند
bind()هستند.
- unbind(sequence, funcid=None)¶
مقیدسازیهای مربوط به الگوی رویداد sequence را روی این ابزارک حذف میکند.
اگر funcid داده شود، فقط تابع شناساییشده توسط آن (مقداری که از فراخوانی قبلی
bind()بازگشته است) حذف میشود و دستور Tcl مرتبط با آن حذف میگردد. در غیر این صورت، تمام پیوندهای sequence از بین میروند و آن را بیپیوند باقی میگذارند.تغییر یافته در نسخهی 3.13: اگر funcid داده شود، فقط همان کالبک از حالت مقید خارج میشود؛ سایر کالبکهای مقید به sequence حفظ میشوند.
- unbind_class(className, sequence)¶
تمام اتصالهای الگوی رویداد sequence را از برچسب اتصال className حذف میکند.
bind_class()را ببینید.
- unbind_all(sequence)¶
تمام اتصالهای الگوی رویداد sequence را از برچسب اتصال ویژه
'all'حذف کنید.bind_all()را ببینید.
- bindtags(tagList=None)¶
اگر tagList حذف شود، یک تاپل از برچسبهای اتصال مرتبط با این ابزارک برمیگرداند. هنگامی که یک رویداد در یک ابزارک رخ میدهد، آن رویداد بهترتیب به هر یک از برچسبهای اتصال ابزارک اعمال میشود، و برای هر برچسب، خاصترین اتصال منطبق اجرا میشود. بهطور پیشفرض، یک ابزارک دارای چهار برچسب اتصال است: نام مسیر خود، کلاس ابزارک آن، نام مسیر نزدیکترین نیاک سطح بالای آن، و
'all'، به همین ترتیب.اگر tagList داده شود، باید دنبالهای از رشتهها باشد؛ برچسبهای اتصال ابزارک به عناصر آن تنظیم میشوند که ترتیب ارزیابی اتصالها را تعیین میکند.
متدهای دارای پیشوند
event_، رویدادهای مجازی را تعریف میکنند و رویدادها را بهصورت برنامهای تولید میکنند.- event_add(virtual, *sequences)¶
رویداد مجازی virtual را، که نام آن به شکل
'<<Paste>>'است، با هر یک از الگوهای رویداد فیزیکی دادهشده توسط sequences مرتبط کنید، تا هر زمان که هر یک از آنها رخ دهد، رویداد مجازی فعال شود. اگر virtual از قبل تعریف شده باشد، دنبالههای جدید به دنبالههای موجود آن افزوده میشوند.
- event_delete(virtual, *sequences)¶
هر یک از sequences را از آنهایی که با رویداد مجازی virtual مرتبط هستند، حذف میکند. دنبالههایی که در حال حاضر با virtual مرتبط نیستند، نادیده گرفته میشوند. اگر هیچ sequences داده نشود، همهی دنبالههای رویداد فیزیکی حذف میشوند، بهطوری که virtual دیگر راهاندازی نمیشود.
- event_generate(sequence, **kw)¶
دنبالهی رویداد sequence را روی این ابزارک تولید کنید و ترتیبی دهید که درست همانطور پردازش شود که گویی از سامانهی پنجرهای آمده است. sequence باید یک الگوی رویداد واحد باشد، مانند
'<Button-1>'یا'<<Paste>>'، نه الحاق چندین الگو. آرگومانهای کلیدواژهای فیلدهای اضافی رویداد را مشخص میکنند، برای مثال x و y برای موقعیت اشارهگر، یا when برای کنترل زمان پردازش رویداد؛ برای فهرست کامل به صفحهی راهنمایeventدر Tk مراجعه کنید.
- event_info(virtual=None)¶
اگر virtual حذف شود، یک تاپل از تمام رویدادهای مجازی که در حال حاضر تعریف شدهاند را برمیگرداند. اگر virtual داده شود، یک تاپل از دنبالههای رویداد فیزیکی که در حال حاضر با آن مرتبط هستند را برمیگرداند، یا اگر تعریف نشده باشد، یک تاپل خالی برمیگرداند.
متدهای دارای پیشوند
after، کالبکها را برای اجرا پس از یک تأخیر یا زمانی که برنامه بیکار است زمانبندی میکنند.- after(ms, func=None, *args, **kw)¶
شیء فراخوانیپذیر func را زمانبندی میکند تا پس از ms میلیثانیه فراخوانی شود، بهطوری که args و kw بهعنوان آرگومانهای جایگاهی و کلیدواژهای به آن ارسال شوند. شناسهای برمیگرداند که میتوان آن را به
after_cancel()ارسال کرد تا فراخوانی لغو شود.اگر func حذف شود، در عوض به مدت ms میلیثانیه متوقف میشود در آن مدت هیچ رویدادی را پردازش نمیکند و
Noneرا برمیگرداند.تغییر یافته در نسخهی 3.10: func اکنون میتواند هر شیء فراخوانیپذیر باشد، نه فقط یک تابع.
تغییر یافته در نسخهی 3.14: آرگومانهای کلیدواژهای اکنون به func ارسال میشوند.
- after_cancel(id)¶
کالبکی را که قبلاً با
after()یاafter_idle()زمانبندی شده است، لغو میکند. id باید شناسهای باشد که توسط یکی از آن متدها برگردانده شده است؛ ارسال مقداری که چنین شناسهای نباشد، باعث پرتابValueErrorمیشود. اگر کالبک قبلاً اجرا یا لغو شده باشد، این کار اثری ندارد.تغییر یافته در نسخهی 3.7: ارسال
None(یا هر مقدار کاذب) بهعنوان id اکنون باعث پرتابValueErrorمیشود.
- after_idle(func, *args, **kw)¶
زمانبندی میکند که شیء فراخوانیپذیر func، همراه با args و kw که به آن ارسال میشوند، در دفعهی بعدی که حلقهی اصلی Tk بیکار شود فراخوانی شود، یعنی زمانی که رویداد دیگری برای پردازش نداشته باشد. یک شناسه برمیگرداند که میتوان آن را به
after_cancel()ارسال کرد تا فراخوانی لغو شود.تغییر یافته در نسخهی 3.14: آرگومانهای کلیدواژهای اکنون به func ارسال میشوند.
- after_info(id=None)¶
اگر id ذکر نشود، یک تاپل از شناسههای تمام کالبکهایی را که در حال حاضر با
after()وafter_idle()برای این مفسر زمانبندی شدهاند، برمیگرداند.اگر id داده شده باشد، باید کالبکی را شناسایی کند که هنوز اجرا یا لغو نشده باشد، و مقدار بازگشتی یک تاپل
(script, type)است، که در آن script به تابعی اشاره میکند که قرار است فراخوانی شود و type یا'idle'است یا'timer'. اگر id وجود نداشته باشد،TclErrorپرتاب میشود.اضافه شده در نسخهی 3.13.
- mainloop(n=0)¶
وارد حلقهی رویداد Tk شوید، که رویدادها را پردازش میکند تا همهی پنجرهها از بین بروند. این معمولاً یک بار، روی پنجرهی ریشه، برای اجرای برنامه فراخوانی میشود.
- quit()¶
از مفسر Tcl خارج شوید، که باعث میشود
mainloop()بازگشت کند.
- update()¶
وارد حلقه رویداد میشود تا همه رویدادهای در انتظار، از جمله کالبکهای بیکار، پردازش شوند. این کار نمایش را بهروز میکند و هر رویدادی را که از قبل در صف قرار دارد، مدیریت میکند، سپس بازمیگردد.
- update_idletasks()¶
وارد حلقه رویداد میشود تا همه کالبکهای بیکارِ در انتظار فراخوانی شوند. این کار نمایش پنجرهها را بهروزرسانی میکند، برای مثال پس از تغییرات هندسی، اما رویدادهای ناشی از کاربر را پردازش نمیکند.
- wait_variable(name)¶
منتظر بمانید تا متغیر Tcl با نام name تغییر کند؛ در این میان به پردازش رویدادها ادامه دهید تا برنامه پاسخگو بماند. name معمولاً نمونهای از
Variableاست، مانندIntVarیاStringVar.waitvar()نام مستعاری ازwait_variable()است.
- wait_window(window=None)¶
صبر کنید تا window تخریب شود، در این میان به پردازش رویدادها ادامه دهید. اگر window حذف شود، از این ابزارک استفاده میشود. این معمولاً برای صبر کردن تا پایان تعامل کاربر با یک جعبهی محاوره استفاده میشود.
- wait_visibility(window=None)¶
صبر کنید تا وضعیت نمایان بودن window تغییر کند، برای مثال هنگامی که برای نخستین بار روی صفحه ظاهر میشود؛ در این میان به پردازش رویدادها ادامه دهید. اگر window داده نشود، از این ابزارک استفاده میشود. این بهطور معمول برای صبر کردن تا نمایان شدن پنجرهای که بهتازگی ایجاد شده، پیش از انجام عملیات روی آن استفاده میشود.
متدهای دارای پیشوند
focus_، فوکوس صفحهکلید را مدیریت میکنند.- focus()¶
تمرکز ورودی صفحهکلید برای نمایشگر این ابزارک را به این ابزارک هدایت میکند. اگر برنامه در حال حاضر تمرکز ورودی را در نمایشگر این ابزارک نداشته باشد، این ابزارک بهعنوان پنجره دارای تمرکز برای سطح بالای خود به خاطر سپرده میشود، و دفعه بعدی که مدیر پنجره تمرکز را به سطح بالا بدهد، تمرکز به آن هدایت مجدد میشود.
focus()نام مستعاری ازfocus_set()است، بهجز برای ابزارکهایCanvasوttk.Treeview، که متدfocus()خودشان را ارائه میدهند.
- focus_force()¶
تمرکز ورودی صفحهکلید را به این ابزارک هدایت کنید، حتی اگر برنامه در حال حاضر تمرکز ورودی برای نمایشگر آن ابزارک را نداشته باشد. این متد باید بهندرت، اگر اصلاً، استفاده شود؛ بهطور معمول یک برنامه باید منتظر بماند تا مدیر پنجره تمرکز را به آن بدهد، نه اینکه آن را تصاحب کند.
- focus_get()¶
ابزارکی را برمیگرداند که در حال حاضر تمرکز صفحهکلید را در برنامه دارد، یا اگر هیچ ابزارکی در برنامه تمرکز ندارد،
Noneبرمیگرداند. برای کارکرد صحیح با چندین نمایشگر، ازfocus_displayof()استفاده کنید.
- focus_displayof()¶
ابزارکی را که در حال حاضر فوکوس صفحهکلید را روی نمایشگری که این ابزارک در آن قرار دارد دارد، برمیگرداند، یا اگر هیچ ابزارکی در برنامه فوکوس را روی آن نمایشگر نداشته باشد،
Noneبرمیگرداند.
- focus_lastfor()¶
آخرین ابزارکی را که در میان تمام ابزارکهای موجود در همان سطح بالای این ابزارک، تمرکز صفحهکلید را داشته است، برمیگرداند؛ این ابزارک، همان ابزارکی است که دفعهی بعدی که مدیر پنجره تمرکز را به سطح بالا بدهد، تمرکز را دریافت خواهد کرد. اگر هیچ ابزارکی در آن سطح بالا هرگز تمرکز را نداشته باشد، یا آخرین ابزارک دارای تمرکز حذف شده باشد، خود سطح بالا برگردانده میشود.
- tk_focusFollowsMouse()¶
Tk را بازپیکربندی کنید تا از یک مدل فوکوس ضمنی استفاده کند که در آن هرگاه مکاننما ماوس وارد یک ابزارک شود، فوکوس روی آن قرار میگیرد. پس از فعالسازی، نمیتوان آن را بهآسانی غیرفعال کرد.
- tk_focusNext()¶
ابزارک بعدی پس از این ابزارک را در ترتیب پیمایش با صفحهکلید برمیگرداند، یا اگر وجود نداشته باشد،
Noneرا برمیگرداند. ترتیب پیمایش ابتدا به فرزند بعدی میرود، سپس بهصورت بازگشتی به فرزندان آن فرزند، و سپس به همنیای بعدی که در ترتیب پشتهبندی بالاتر است میرود. اگر گزینهیtakefocusیک ابزارک روی0تنظیم شده باشد، از آن ابزارک صرفنظر میشود. این متد در اتصالهای پیشفرض برای کلید Tab استفاده میشود.
- tk_focusPrev()¶
ابزارک قبلی را که پیش از این ابزارک در ترتیب پیمایش صفحهکلید قرار دارد، برمیگرداند، یا اگر موردی وجود نداشته باشد
Noneرا برمیگرداند. برای چگونگی تعریف این ترتیب،tk_focusNext()را ببینید. این متد در اتصالهای پیشفرض برای کلید Shift-Tab استفاده میشود.
متدهای دارای پیشوند
grab_، گرفتن ورودی (input grab) را که تمام رویدادهای ورودی را به یک ابزارک هدایت میکند، تنظیم و پرسوجو میکنند.- grab_set()¶
یک تصرف محلی (grab) روی این ابزارک تنظیم کنید. یک تصرف، رویدادهای اشارهگر را به این ابزارک و زیرمجموعههای آن محدود میکند: هنگامی که اشارهگر خارج از زیردرخت ابزارک باشد، فشار و رها شدن دکمه و حرکت اشارهگر به ابزارک متصرف گزارش داده میشوند و پنجرههای خارج از زیردرخت تا زمانی که تصرف آزاد نشده است غیرفعال میشوند. یک تصرف محلی فقط بر برنامهای که تصرف را انجام داده است اثر میگذارد. هر تصرفی که این برنامه پیشتر روی نمایشگر ابزارک تنظیم کرده باشد، بهطور خودکار آزاد میشود. تنظیم یک تصرف، روش معمول برای مودال (modal) کردن یک پنجرهی محاورهای است: تا زمانی که تصرف برقرار است، کاربر نمیتواند با پنجرههای دیگر برنامه تعامل کند.
- grab_set_global()¶
یک گرفتن سراسری (global grab) روی این ابزارک تنظیم کنید. گرفتن سراسری مانند گرفتن محلی (local grab) تنظیمشده توسط
grab_set()است، اما دسترسی تمام برنامههای دیگر روی صفحه را مسدود میکند، بهطوریکه تنها زیردرخت این ابزارک به رویدادهای اشارهگر حساس است و صفحهکلید را نیز میگیرد. با احتیاط استفاده کنید: از آنجا که برنامههای دیگر تا زمانی که آزاد نشود، رویدادها را دریافت نمیکنند، بهسادگی ممکن است با یک گرفتن سراسری، نمایشگر غیرقابلاستفاده شود.
- grab_release()¶
اگر گرفتن (grab) روی این ابزارک وجود دارد، آن را آزاد کنید؛ در غیر این صورت هیچ کاری انجام ندهید.
- grab_current()¶
ابزارکی را که هماکنون گرفتن (grab) را در این برنامه برای نمایشگر این ابزارک در اختیار دارد، برگردانید، یا اگر چنین ابزارکی وجود ندارد،
Noneرا برگردانید.
- grab_status()¶
اگر در حال حاضر هیچ تصرفی (grab) روی این ابزارک تنظیم نشده باشد،
Noneرا برمیگرداند؛ در صورت تنظیم تصرف محلی،"local"یا در صورت تنظیم تصرف سراسری،"global"را برمیگرداند.
متدهایی با پیشوند
selection_، انتخاب X را بازیابی و مدیریت میکنند.- selection_clear(**kw)¶
گزینش X را پاک میکند، بهطوری که دیگر هیچ پنجرهای مالک آن نباشد. گزینشی که باید پاک شود با آرگومان کلیدواژهای selection مشخص میشود؛ این آرگومان یک نام اتم مانند
'PRIMARY'یا'CLIPBOARD'است و پیشفرض آنPRIMARYاست. آرگومان کلیدواژهای displayof نام ابزارکی را مشخص میکند که نمایشگر مورد عمل را تعیین میکند، و پیشفرض آن همین ابزارک است.این رفتار در ابزارکهای
Entry،ListboxوSpinboxلغو میشود؛ در این ابزارکها،selection_clear()بهجای آن، انتخاب خود ابزارک را پاک میکند.
- selection_get(**kw)¶
محتوای گزینش جاری X را برمیگرداند. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند و مقدار پیشفرض آن
PRIMARYاست. آرگومان کلیدواژهای type قالبی را که داده باید در آن برگردانده شود (هدف تبدیل دلخواه) مشخص میکند: یک نام اتم (atom) مانند'STRING'یا'FILE_NAME'؛ مقدار پیشفرض آنSTRINGاست، مگر در X11، که ابتداUTF8_STRINGامتحان میشود وSTRINGبهعنوان جایگزین استفاده میشود. آرگومان کلیدواژهای displayof نام ابزارکی را مشخص میکند که نمایشگر را برای واکشی گزینش تعیین میکند، و پیشفرض آن همین ابزارک است.
- selection_handle(command, **kw)¶
command را بهعنوان یک هندلر ثبت کنید تا گزینش X را که این ابزارک مالک آن است، هنگامی که برنامهی دیگری آن را درخواست میکند، تأمین کند. هنگامی که گزینش بازیابی میشود، command با دو آرگومان فراخوانی میشود: آفست نویسهی آغازین و حداکثر تعداد نویسههای قابل بازگرداندن، و باید حداکثر همان تعداد نویسه از گزینش را که از آن آفست شروع میشود، بازگرداند؛ برای گزینشهای بسیار طولانی، این فرمان بهطور مکرر با آفستهای فزاینده فراخوانی میشود. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند (پیشفرض
PRIMARY) و آرگومان کلیدواژهای type قالب گزینشی را که مدیر تأمین میکند، مشخص میکند (مانند'STRING'یا'FILE_NAME'، پیشفرضSTRING).
- selection_own(**kw)¶
این ابزارک را مالک گزینش X در نمایشگر آن میکند. به مالک پیشین، در صورت وجود، اطلاع داده میشود که گزینش را از دست داده است. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند و مقدار پیشفرض آن
PRIMARYاست.
- selection_own_get(**kw)¶
ابزارکی در این برنامه را برمیگرداند که مالک گزینش X در نمایشگر حاوی این ابزارک است، یا اگر هیچ ابزارکی در این برنامه مالک گزینش نباشد،
Noneبرمیگرداند. آرگومان کلیدواژهای selection نام گزینش را تعیین میکند و مقدار پیشفرض آنPRIMARYاست. آرگومان کلیدواژهای displayof ابزارکی را تعیین میکند که نمایشگر مورد پرسوجو را مشخص میکند، و مقدار پیشفرض آن این ابزارک است.
متدهایی که پیشوند
clipboard_دارند، کلیپبورد را مدیریت میکنند.- clipboard_append(string, **kw)¶
string را به کلیپبورد Tk اضافه کنید و مالکیت کلیپبورد را در نمایش این ابزارک کسب کنید. پیش از افزودن، کلیپبورد باید با
clipboard_clear()خالی شود؛ همه افزودنها باید پیش از بازگشت به حلقه رویداد کامل شوند تا کلیپبورد بهصورت اتمی بهروزرسانی شود. آرگومان کلیدواژهای type قالب داده را مشخص میکند، یعنی یک نام اتم (atom) مانند'STRING'یا'FILE_NAME'(پیشفرضSTRING)، و آرگومان کلیدواژهای format بازنمایی را مشخص میکند که برای انتقال آن استفاده میشود (پیشفرضSTRING). آرگومان کلیدواژهای displayof ابزارکی را مشخص میکند که نمایش هدف را تعیین میکند، و پیشفرض آن این ابزارک است. محتویات را میتوان باclipboard_get()یاselection_get()بازیابی کرد.
- clipboard_clear(**kw)¶
مالکیت کلیپبورد را در نمایشگر این ابزارک به دست بگیرید و هرگونه محتوای پیشین را حذف کنید. آرگومان کلیدواژهای displayof ابزارکی را مشخص میکند که نمایشگر هدف را تعیین میکند، و مقدار پیشفرض آن همین ابزارک است.
- clipboard_get(**kw)¶
دادهها را از کلیپبورد در نمایش این ابزارک بازیابی میکند. آرگومان کلیدواژهای type قالبی را مشخص میکند که داده در آن بازگردانده میشود؛ این قالب یک نام اتم مانند
'STRING'یا'FILE_NAME'است. مقدار پیشفرض آنSTRINGاست، بهجز در X11، که ابتداUTF8_STRINGامتحان میشود و ازSTRINGبهعنوان جایگزین استفاده میشود. آرگومان کلیدواژهای displayof نام ابزارکی است که نمایش را تعیین میکند، و پیشفرض آن پنجره ریشه برنامه است. این معادلselection_get(selection='CLIPBOARD')است.
متدهایی که پیشوند
option_دارند، پایگاه دادهی گزینههای Tk را پرسوجو و تغییر میدهند.- option_add(pattern, value, priority=None)¶
یک گزینه به پایگاه دادهی گزینههای Tk اضافه کنید که value را با pattern مرتبط میسازد. pattern در قالب معمول X از نامها و/یا کلاسهایی تشکیل شده است که با ستاره یا نقطه از هم جدا شدهاند. priority یک عدد صحیح بین ۰ تا ۱۰۰ است، یا یکی از نامهای نمادین
'widgetDefault'(۲۰)،'startupFile'(۴۰)،'userDefault'(۶۰) یا'interactive'(۸۰)؛ پیشفرض آنinteractiveاست.
- option_clear()¶
پایگاه دادهی گزینههای Tk را پاک میکند. گزینههای پیشفرض از ویژگی
RESOURCE_MANAGERیا پرونده.Xdefaults، بار بعدی که گزینهای به پایگاه داده افزوده شود یا از آن حذف شود، بهطور خودکار دوباره بارگذاری میشوند.
- option_get(name, className)¶
مقدار گزینهای را که در پایگاه دادهی گزینههای Tk، با این ابزارک تحت name و className مطابقت دارد، برمیگرداند؛ اگر هیچ ورودی مطابقی وجود نداشته باشد، یک رشته خالی برمیگرداند. هنگامی که چند ورودی مطابقت داشته باشند، ورودی با بالاترین اولویت برگردانده میشود و در میان ورودیهای با اولویت برابر، آخرین ورودی اضافهشده برگردانده میشود.
- option_readfile(fileName, priority=None)¶
پروندهای به نام fileName را بخوانید، که باید قالب استاندارد یک پایگاه داده منابع X مانند
.Xdefaultsرا داشته باشد، و همه گزینههای مشخصشده در آن را به پایگاه داده گزینههای Tk اضافه کنید. priority مانندoption_add()تفسیر میشود و بهطور پیشفرضinteractiveاست.
- bell(displayof=0)¶
زنگ را روی نمایشگر این ابزارک، با استفاده از تنظیمات فعلی مربوط به زنگِ نمایشگر، به صدا درآورید و نگهبان صفحه را برای صفحه بازنشانی کنید. اگر displayof بهعنوان یک ابزارک داده شود، در عوض زنگ در نمایشگر آن ابزارک به صدا درمیآید.
- tk_setPalette(background, /)¶
- tk_setPalette(*args, **kw)
طرحواره رنگ جدیدی را برای تمام عناصر ابزارک Tk تنظیم میکند. ابزارکهای موجود بهروزرسانی میشوند و پایگاه دادهی گزینهها تغییر میکند تا ابزارکهای بعدی از رنگهای جدید استفاده کنند. یک آرگومان رنگ واحد بهعنوان رنگ پسزمینه معمول تلقی میشود و پالت کاملی از آن محاسبه میشود. بهعنوان جایگزین، میتوان آرگومانها را بهصورت جفتهای کلیدواژهای name/value نیز وارد کرد که نام گزینههای منفرد در پایگاه دادهی گزینهها را تعیین میکنند. نام گزینههای شناختهشده عبارتاند از
activeBackground،activeForeground،background،disabledForeground،foreground،highlightBackground،highlightColor،insertBackground،selectColor،selectBackground،selectForegroundوtroughColor؛ برای هر گزینهای که مشخص نشده باشد، پیشفرضهای معقولی محاسبه میشوند.
- tk_bisque()¶
رنگهای برنامه را به طرحواره رنگی قهوهای روشن (bisque) که در Tk 3.6 و نسخههای پیشین استفاده میشد، بازمیگرداند. برای سازگاری با نسخههای قدیمیتر ارائه شده است.
- tk_strictMotif(boolean=None)¶
بپرسید یا تنظیم کنید که آیا ظاهر و رفتار Tk باید بهطور سختگیرانه از Motif پیروی کند. یک مقدار بولی درست، انطباق سختگیرانه با Motif را فعال میکند (برای مثال، تغییر نکردن رنگ هنگام عبور ماوس از روی یک لغزنده). تنظیم حاصل را برمیگرداند.
متدهایی که پیشوند
busy_دارند، وضعیت مشغول بودن یک پنجره را مدیریت میکنند؛ این وضعیت یک مکاننما مشغول نمایش میدهد و ورودی کاربر را نادیده میگیرد.- tk_busy_hold(**kw)¶
این ابزارک را مشغول نشان دهید. پنجرهای شفاف در جلوی ابزارک قرار میگیرد، بهطوری که آن و همهی زیرمجموعههای آن در سلسلهمراتب ابزارک از دریافت رویدادهای اشارهگر مسدود میشوند و یک مکاننما مشغول نمایش میدهند. معمولاً باید بلافاصله پس از آن،
update()فراخوانی شود تا اطمینان حاصل شود که عملیات نگهداشت (hold) پیش از آنکه برنامه پردازش خود را آغاز کند، اعمال شده است.تنها گزینهی پیکربندی پشتیبانیشده cursor است، یعنی مکاننمای که هنگام مشغول بودن ابزارک نمایش داده میشود؛ این گزینه میتواند هر یک از مقادیر پذیرفتهشده توسط
configure()را داشته باشد.busy_hold()،busy()وtk_busy()نامهای مستعارtk_busy_hold()هستند.اضافه شده در نسخهی 3.13.
- tk_busy_configure(cnf=None, **kw)¶
گزینههای پیکربندی پنجره مشغول را بازیابی یا تغییر میدهد. ابزارک باید پیشتر با
tk_busy_hold()مشغول شده باشد. بدون آرگومان، یک دیکشنری برمیگرداند که همه گزینههای موجود را توصیف میکند؛ اگر cnf نام یک گزینه باشد، یک تاپل برمیگرداند که همان گزینه را توصیف میکند. در غیر این صورت، گزینههای دادهشده را به مقادیر دادهشده تنظیم میکند. گزینهها میتوانند هر یک از مقادیر پذیرفتهشده توسطtk_busy_hold()را داشته باشند.به پایگاه دادهی گزینهها از طریق نام یا کلاس ابزارک ارجاع داده میشود. برای مثال، اگر قرار باشد یک ابزارک
Frameبا نامframeمشغول شود، میتوان مکاننما مشغول را با هر یک از فراخوانیهای زیر برای آن مشخص کرد:w.option_add('*frame.busyCursor', 'gumby') w.option_add('*Frame.BusyCursor', 'gumby')
busy_configure()،busy_config()وtk_busy_config()نامهای مستعارtk_busy_configure()هستند.اضافه شده در نسخهی 3.13.
- tk_busy_cget(option)¶
مقدار فعلی option پیکربندی busy را برمیگرداند. ابزارک باید پیشتر توسط
tk_busy_hold()مشغول شده باشد، و option میتواند هر یک از مقادیر پذیرفتهشده توسط آن متد را داشته باشد.busy_cget()نام مستعارtk_busy_cget()است.اضافه شده در نسخهی 3.13.
- tk_busy_forget()¶
این ابزارک را از حالت مشغول خارج کنید تا منابعی (از جمله پنجره شفاف) که هنگام مشغولشدن آن اختصاصیافتهاند، آزاد شوند. ابزارک دوباره رویدادهای کاربر را دریافت خواهد کرد. این منابع نیز هنگامی که ابزارک نابود شود، آزاد میشوند.
busy_forget()یک نام مستعار ازtk_busy_forget()است.اضافه شده در نسخهی 3.13.
- tk_busy_status()¶
اگر ابزارک در حال حاضر مشغول باشد،
Trueبرمیگرداند، در غیر این صورتFalseبرمیگرداند.busy_status()نام مستعاری ازtk_busy_status()است.اضافه شده در نسخهی 3.13.
- tk_busy_current(pattern=None)¶
فهرستی از ابزارکهایی را که در حال حاضر مشغول هستند برمیگرداند. اگر pattern داده شود، تنها ابزارکهای مشغولی که نام مسیرشان با الگو مطابقت دارد برگردانده میشوند.
busy_current()نام مستعاری برایtk_busy_current()است.اضافه شده در نسخهی 3.13.
متدهایی که پیشوند
winfo_دارند، اطلاعات مربوط به پنجرههای مدیریتشده توسط Tk را دریافت میکنند.- winfo_atom(name, displayof=0)¶
شناسه عدد صحیح برای اتمی که نام آن name است را برمیگرداند و در صورتی که اتمی وجود نداشته باشد، یک اتم جدید ایجاد میکند. اگر displayof داده شده باشد، اتم در نمایش آن پنجره جستجو میشود؛ در غیر این صورت در نمایش پنجره اصلی برنامه جستجو میشود.
- winfo_atomname(id, displayof=0)¶
نام متنی اتمی که شناسهی عدد صحیح آن id است را برمیگرداند. این، معکوس
winfo_atom()است. اگر displayof داده شود، شناسه در نمایش آن پنجره جستوجو میشود؛ در غیر این صورت، در نمایش پنجرهی اصلی برنامه جستوجو میشود.
- winfo_cells()¶
تعداد سلولهای نقشه رنگ (colormap) برای ابزارک را برمیگرداند.
- winfo_children()¶
فهرستی حاوی ابزارکهایی که فرزند این ابزارک هستند را برمیگرداند، به ترتیب پشتهبندی از پایینترین به بالاترین. پنجرههای Toplevel بهعنوان فرزند والد منطقی خود برگردانده میشوند.
- winfo_class()¶
نام کلاس ابزارک را برمیگرداند.
- winfo_colormapfull()¶
اگر مشخص باشد که نقشه رنگ (colormap) برای ابزارک پر است،
Trueرا برمیگرداند، در غیر این صورتFalseرا برمیگرداند.
- winfo_containing(rootX, rootY, displayof=0)¶
ابزارک شامل نقطهی مشخصشده با rootX و rootY را برمیگرداند، یا اگر هیچ پنجرهای در این برنامه شامل آن نقطه نباشد،
Noneرا برمیگرداند. مختصات در دستگاه مختصات پنجرهی ریشه و بر حسب واحدهای صفحه هستند. اگر displayof داده شود، مختصات به صفحهی شامل آن پنجره اشاره میکنند؛ در غیر این صورت به صفحهی پنجرهی اصلی برنامه اشاره میکنند.
- winfo_depth()¶
عمق ابزارک را برمیگرداند، یعنی تعداد بیتها در هر پیکسل.
- winfo_exists()¶
اگر ابزارک وجود داشته باشد، مقدار true و در غیر این صورت مقدار false را برمیگرداند.
- winfo_fpixels(number)¶
یک مقدار ممیز شناور برمیگرداند که تعداد پیکسلهای ابزارک معادل فاصلهی صفحهنمایش number را نشان میدهد (برای مثال،
"2.0c"یا"1i"). نتیجه ممکن است کسری باشد؛ برای یک مقدار عدد صحیح گرد شده ازwinfo_pixels()استفاده کنید.
- winfo_geometry()¶
هندسهی ابزارک را بهصورت
widthxheight+x+yبرمیگرداند. تمام ابعاد بر حسب پیکسل هستند. یک آفست میتواند منفی باشد؛ بهgeometry()مراجعه کنید.
- winfo_height()¶
ارتفاع ابزارک را بر حسب پیکسل برمیگرداند. هنگامی که یک پنجره برای نخستین بار ایجاد میشود، ارتفاع آن ۱ پیکسل است؛ این مقدار در نهایت توسط یک مدیر چیدمان تغییر میکند. همچنین
winfo_reqheight()را ببینید.
- winfo_id()¶
یک شناسهی سطح پایین ویژهی سکو برای ابزارک برمیگرداند. در یونیکس، این شناسهی پنجرهی X است و در ویندوز، دسته پنجره (window handle) است.
- winfo_interps(displayof=0)¶
یک تاپل از نامهای تمام مفسرهای Tcl که در حال حاضر برای یک نمایش خاص ثبت شدهاند، برمیگرداند. اگر displayof داده شده باشد، مقدار بازگشتی به نمایش آن پنجره اشاره میکند؛ در غیر این صورت، به نمایش پنجرهی اصلی برنامه اشاره میکند.
- winfo_ismapped()¶
اگر ابزارک در حال حاضر نگاشتشده باشد، مقدار true بازمیگرداند، در غیر این صورت مقدار false بازمیگرداند.
- winfo_manager()¶
نام مدیر چیدمان (geometry manager) مسئول فعلی ابزارک را برمیگرداند، یا اگر تحت مدیریت هیچ مدیر چیدمانی نباشد، یک رشته خالی برمیگرداند.
- winfo_name()¶
نام ابزارک را در والد خود برمیگرداند، برخلاف نام مسیر کامل آن.
- winfo_parent()¶
نام مسیر والد ابزارک را برمیگرداند، یا اگر ابزارک پنجرهی اصلی برنامه باشد، یک رشته خالی برمیگرداند.
- winfo_pathname(id, displayof=0)¶
نام مسیر پنجرهای که شناسهی آن id است را برمیگرداند. اگر displayof داده شده باشد، شناسه در نمایشگر آن پنجره جستجو میشود؛ در غیر این صورت، در نمایشگر پنجرهی اصلی برنامه جستجو میشود.
- winfo_pixels(number)¶
تعداد پیکسلهای موجود در ابزارک را که با فاصله صفحهای number متناظر است برمیگرداند (برای مثال،
"2.0c"یا"1i"). نتیجه به نزدیکترین عدد صحیح گرد میشود؛ برای نتیجه کسری ازwinfo_fpixels()استفاده کنید.
- winfo_pointerx()¶
مختصات x مکاننما را بر حسب پیکسل، نسبت به پنجرهی ریشهی صفحه نمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر مکاننما در همان صفحه نمایش ابزارک نباشد،
-1را برمیگرداند.
- winfo_pointerxy()¶
مختصات اشارهگر را بهصورت یک تاپل
(x, y)، بر حسب پیکسل و نسبت به پنجرهی ریشهی صفحهنمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر اشارهگر روی همان صفحهنمایش ابزارک نباشد، هر دو مختصات-1خواهند بود.
- winfo_pointery()¶
مختصات y اشارهگر را بر حسب پیکسل، نسبت به پنجرهی ریشهی صفحهنمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر اشارهگر در همان صفحهنمایشی که ابزارک قرار دارد نباشد،
-1برمیگرداند.
- winfo_reqheight()¶
ارتفاع درخواستی ابزارک را بر حسب پیکسل برمیگرداند. این همان مقداری است که توسط مدیر هندسهی ابزارک برای محاسبهی هندسهی آن استفاده میشود.
- winfo_reqwidth()¶
عرض درخواستی ابزارک را بر حسب پیکسل برمیگرداند. این مقداری است که مدیر هندسی ابزارک برای محاسبه هندسه آن استفاده میکند.
- winfo_rgb(color)¶
یک تاپل
(r, g, b)از شدتهای قرمز، سبز و آبی، در بازهی ۰ تا ۶۵۵۳۵، برمیگرداند که در ابزارک با color مطابقت دارند. color را میتوان در هر یک از قالبهای قابلقبول برای یک گزینهی رنگ مشخص کرد.
- winfo_rootx()¶
مختصات x گوشهی بالا سمت چپ حاشیهی ابزارک (یا خود ابزارک اگر حاشیه ندارد) را در پنجرهی ریشهی صفحه برمیگرداند.
- winfo_rooty()¶
مختصات y گوشهی بالا سمت چپ حاشیهی ابزارک (یا خود ابزارک اگر حاشیه ندارد) را در پنجرهی ریشهی صفحه برمیگرداند.
- winfo_screen()¶
نام صفحهی مرتبط با ابزارک را در قالب
displayName.screenIndexبرمیگرداند.
- winfo_screencells()¶
تعداد سلولها در نقشهی رنگ پیشفرض برای صفحهی ابزارک را برمیگرداند.
- winfo_screendepth()¶
عمق پنجرهی ریشهی صفحهی ابزارک را برمیگرداند، یعنی تعداد بیتها به ازای هر پیکسل.
- winfo_screenheight()¶
ارتفاع صفحهی ابزارک را بر حسب پیکسل برمیگرداند.
- winfo_screenmmheight()¶
ارتفاع صفحهی نمایش ابزارک را بر حسب میلیمتر برمیگرداند.
- winfo_screenmmwidth()¶
عرض صفحهی نمایش ابزارک را بر حسب میلیمتر برمیگرداند.
- winfo_screenvisual()¶
کلاس بصری پیشفرض صفحهی ابزارک را برمیگرداند؛ یکی از
"directcolor"،"grayscale"،"pseudocolor"،"staticcolor"،"staticgray"یا"truecolor"است.
- winfo_screenwidth()¶
عرض صفحهی نمایش ابزارک را بر حسب پیکسل برمیگرداند.
- winfo_server()¶
رشتهای حاوی اطلاعات دربارهی سرورِ نمایش ابزارک برمیگرداند. قالب دقیق این رشته ممکن است از یک سکو به سکوی دیگر متفاوت باشد.
- winfo_toplevel()¶
پنجرهی بالای سلسلهمراتبِ حاوی ابزارک را برمیگرداند. در Tk استاندارد، این همیشه یک ابزارک
Toplevelاست.
- winfo_viewable()¶
اگر ابزارک و تمام نیاکان آن تا نزدیکترین پنجرهی سطح بالا نگاشتشده باشند، true و در غیر این صورت false را برمیگرداند.
- winfo_visual()¶
کلاس بصری ابزارک را برمیگرداند؛ یکی از
"directcolor"،"grayscale"،"pseudocolor"،"staticcolor"،"staticgray"یا"truecolor".
- winfo_visualid()¶
شناسهی X برای بصری (visual) مربوط به ابزارک را برمیگرداند.
- winfo_visualsavailable(includeids=False)¶
فهرستی برمیگرداند که visualهای در دسترس برای صفحهی ابزارک را توصیف میکند. هر آیتم شامل یک کلاس visual (به
winfo_visual()مراجعه کنید) و به دنبال آن، عمقی از نوع عدد صحیح است. اگر includeids درست باشد، شناسهی X مربوط به visual نیز گنجانده میشود.
- winfo_vrootheight()¶
اگر پنجره ریشه مجازی مرتبط با ابزارک وجود داشته باشد، ارتفاع آن را برمیگرداند؛ در غیر این صورت ارتفاع صفحه ابزارک را برمیگرداند.
- winfo_vrootwidth()¶
عرض پنجرهی ریشهی مجازی مرتبط با ابزارک را در صورت وجود برمیگرداند؛ در غیر این صورت، عرض صفحهی نمایش ابزارک را برمیگرداند.
- winfo_vrootx()¶
آفست x پنجره ریشه مجازی مرتبط با ابزارک را نسبت به پنجره ریشه صفحه آن برمیگرداند. این مقدار معمولاً صفر یا منفی است، و اگر پنجره ریشه مجازی وجود نداشته باشد،
0است.
- winfo_vrooty()¶
آفست y پنجره ریشه مجازی مرتبط با ابزارک را نسبت به پنجره ریشه صفحهنمایش آن برمیگرداند. این مقدار معمولاً صفر یا منفی است، و اگر پنجره ریشه مجازی وجود نداشته باشد،
0است.
- winfo_width()¶
عرض ابزارک را بر حسب پیکسل برمیگرداند. هنگامی که یک پنجره برای نخستین بار ایجاد میشود، عرض آن ۱ پیکسل است؛ این عرض در نهایت توسط مدیر چیدمان تغییر میکند. همچنین ببینید
winfo_reqwidth().
- winfo_x()¶
مختصات x گوشهی بالا-چپ حاشیهی ابزارک (یا خود ابزارک، اگر حاشیهای نداشته باشد) را در والد ابزارک برمیگرداند.
- winfo_y()¶
مختصات y گوشهی بالا سمت چپ حاشیهی ابزارک را در والد ابزارک برمیگرداند (یا خود ابزارک اگر حاشیه ندارد).
- info_patchlevel()¶
سطح وصلهی Tcl/Tk را بهصورت یک تاپل نامدار (named tuple) با همان پنج فیلدِ
sys.version_infoبرمیگرداند: major، minor، micro، releaselevel و serial. releaselevel یکی از'alpha'،'beta'یا'final'است. تبدیل آن به یک رشته، نسخه را در نمادگذاری معمول Tcl/Tk میدهد؛ برای مثال'9.0.3'برای یک انتشار نهایی یا'9.1b2'برای یک پیشانتشار.اضافه شده در نسخهی 3.11.
- class tkinter.Wm¶
میکساین
Wmدسترسی به مدیر پنجره را فراهم میکند و به برنامه اجازه میدهد مواردی مانند عنوان، هندسه و نماد یک پنجرهی سطح بالا، نحوهی تغییر اندازهی آن و چگونگی پاسخ آن به پروتکلهای مدیر پنجره را کنترل کند. این میکساین درTkوToplevelادغام شده است، بنابراین متدهای آن در هر پنجرهی سطح بالا در دسترس هستند. هر متد دو نوشتار معادل دارد: یک نام کوتاه و یک نام با پیشوندwm_(برای مثال،title()وwm_title()). همچنین ببینید مدیر پنجره.- aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None)¶
نسبت ابعاد (نسبت عرض به ارتفاع) پنجره را محدود میکند. اگر هر چهار آرگومان داده شوند، مدیر پنجره این نسبت را بین
minNumer/minDenomوmaxNumer/maxDenomحفظ میکند؛ دادن رشتههای خالی هرگونه محدودیت موجود را حذف میکند. بدون آرگومان، یک تاپل از چهار مقدار فعلی، یا اگر هیچ محدودیت نسبت ابعادی فعال نباشد،Noneبرمیگرداند.wm_aspect()نام مستعاری ازaspect()است.
- attributes(*args, return_python_dict=False, **kwargs)¶
ویژگیهای مختص پلتفرم پنجره را پرسوجو یا تنظیم کنید. بدون آرگومان، پرچمهای مختص پلتفرم و مقادیر آنها برمیگردانده میشوند؛ برای دریافت آنها بهصورت یک دیکشنری، return_python_dict را با مقدار true ارسال کنید. یک نام گزینه تکی مانند
'alpha'مقدار آن گزینه را برمیگرداند و گزینهها با استفاده از آرگومانهای کلیدواژهای تنظیم میشوند (alpha=0.5).ویژگیهای در دسترس بسته به پلتفرم متفاوت است. تمام پلتفرمها از موارد زیر پشتیبانی میکنند:
- alpha
کدری پنجره، از
0.0(کاملاً شفاف) تا1.0(کدر). هر جا شفافیت پشتیبانی نشود، مقدار روی1.0باقی میماند.- appearance
اینکه پنجره در ویندوز و مکاواس در حالت تاریک رندر میشود:
'auto'،'light'یا'dark'(این مورد در X11 تأثیری ندارد).- fullscreen
اینکه پنجره تمام صفحه را اشغال میکند و حاشیه ندارد.
- topmost
اینکه پنجره بالای همهی پنجرههای دیگر نمایش داده میشود.
ویندوز علاوه بر این پشتیبانی میکند:
- disabled
اینکه پنجره در وضعیت غیرفعال قرار دارد.
- toolwindow
اینکه پنجره از سبک پنجره ابزار استفاده میکند.
- transparentcolor
رنگی که کاملاً شفاف میشود، یا یک رشتهی خالی برای هیچکدام.
macOS همچنین پشتیبانی میکند:
- class
اینکه پنجرهی زیربنایی Aqua یک
nswindowاست یا یکnspanel؛ این مورد فقط پیش از ایجاد پنجره قابل تنظیم است.- modified
وضعیت تغییری که توسط دکمهی بستن پنجره و نماد پراکسی (proxy icon) نمایش داده میشود.
- notify
اینکه آیا آیکون داک برنامه برای جلب توجه جهش میکند.
- stylemask
نقاب سبک (style mask) پنجرهی زیربنایی Aqua، که بهصورت فهرستی از نامهای بیت مانند
titledیاresizableارائه میشود.- tabbingid
شناسهی گروه زبانهای که پنجره به آن تعلق دارد.
- tabbingmode
اینکه آیا پنجره میتواند بهعنوان زبانه باز شود:
'auto'،'preferred'یا'disallowed'.- titlepath
مسیر پروندهای که نماد پراکسی (proxy icon) پنجره آن را نشان میدهد.
- transparent
اینکه ناحیهی محتوا شفاف باشد و سایهی پنجره خاموش باشد.
X11 علاوه بر این پشتیبانی میکند:
- type
نوع پنجره، یا فهرستی از انواع بهترتیب اولویت، که مدیر پنجره باید برای تفسیر پنجره از آنها استفاده کند، مانند
'dialog'یا'splash'.- zoomed
اینکه آیا پنجره بیشینهشده است.
توجه
Tk 8.6 ویژگی type را افزود و Tk 9.0 ویژگیهای appearance، class، stylemask، tabbingid و tabbingmode را افزود.
در X11، تغییرات بهصورت ناهمگام اعمال میشوند، بنابراین مقدار پرسوجوشده ممکن است هنوز بازتابدهنده آخرین درخواست نباشد.
wm_attributes()نام مستعارattributes()است.تغییر یافته در نسخهی 3.13: اکنون میتوان یک ویژگی را با نام، بدون
-آغازین، پرسوجو کرد و ویژگیها را میتوان با آرگومانهای کلیدواژهای تنظیم کرد. پارامتر return_python_dict افزوده شد.منسوخ شده از نسخهی 3.13: تنظیم یک ویژگی با ارسال نام گزینه (با یک
-در ابتدا) و مقدار آن بهعنوان دو آرگومان جایگاهی، مانندw.attributes('-alpha', 0.5)، منسوخ شده است؛ در عوض از آرگومانهای کلیدواژهای استفاده کنید.
- client(name=None)¶
name را که باید نام میزبانی باشد که برنامه روی آن اجرا میشود، در ویژگی
WM_CLIENT_MACHINEپنجره ذخیره میکند تا مدیر پنجره یا نشست از آن استفاده کند. یک رشته خالی ویژگی را حذف میکند. بدون آرگومان، آخرین نام تنظیمشده را برمیگرداند، یا یک رشته خالی.wm_client()نام مستعارclient()است.
- colormapwindows(*wlist)¶
ویژگی
WM_COLORMAP_WINDOWSرا دستکاری میکند، که به مدیر پنجره درباره پنجرههایی که نقشهرنگهای خصوصی دارند اطلاع میدهد. اگر wlist داده شود، ویژگی را با آن پنجرهها بازنویسی میکند (ترتیب آنها یک ترتیب اولویت برای نصب نقشهرنگها است). بدون آرگومان، فهرست پنجرههایی که در حال حاضر در این ویژگی آمدهاند را برمیگرداند.wm_colormapwindows()نام مستعارcolormapwindows()است.
- command(value=None)¶
مقدار value را در ویژگی
WM_COMMANDپنجره ذخیره میکند تا توسط مدیر پنجره یا مدیر نشست استفاده شود؛ این مقدار باید فهرستی باشد که کلمات فرمان استفادهشده برای فراخوانی برنامه را ارائه میدهد. یک رشته خالی ویژگی را حذف میکند. بدون آرگومان، آخرین مقدار تنظیمشده یا یک رشته خالی را برمیگرداند.wm_command()نام مستعارcommand()است.
- deiconify()¶
پنجره را با نگاشت آن در حالت عادی (غیرآیکنی) نمایش میدهد. اگر پنجره هرگز نگاشت نشده باشد، این کار تضمین میکند که هنگام نخستین نگاشت، بهصورت غیرآیکنی ظاهر شود. در ویندوز، پنجره همچنین بالا آورده میشود و فوکوس را دریافت میکند.
wm_deiconify()نام مستعاری ازdeiconify()است.
- focusmodel(model=None)¶
مدل فوکوس پنجره را تنظیم یا پرسوجو میکند. model یا
'active'است (پنجره فوکوس ورودی را برای خود یا زیرمجموعههایش مطالبه میکند، حتی زمانی که فوکوس در برنامهای دیگر است) یا'passive'است (پنجره به مدیر پنجره اتکا میکند تا فوکوس را به آن بدهد). بدون آرگومان، مدل جاری را برمیگرداند. مقدار پیشفرض'passive'است، که دستورfocus()آن را فرض میکند.wm_focusmodel()نام مستعارfocusmodel()است.
- forget(window)¶
window را از صفحهی نمایش خارج کنید (unmap) تا دیگر توسط مدیر پنجره مدیریت نشود. در این صورت با یک
Toplevelمانند یکFrameرفتار میشود، اگرچه پیکربندی-menuآن به خاطر سپرده میشود و اگر ابزارک دوباره مدیریت شود، منو دوباره ظاهر میشود.wm_forget()یک نام مستعار ازforget()است.با
Pack.forget()اشتباه گرفته نشود.اضافه شده در نسخهی 3.3.
- frame()¶
اگر مدیر پنجره آن را در چنین قابی تغییر والد داده باشد، شناسهی پنجرهی خاصِ سکو برای بیرونیترین قاب تزئینی حاوی پنجره را برمیگرداند؛ در غیر این صورت شناسهی خود پنجره را برمیگرداند.
wm_frame()نام مستعارframe()است.
- geometry(newGeometry=None)¶
هندسه پنجره را تنظیم یا پرسوجو میکند. newGeometry به شکل
=widthxheight+x+yاست، که در آن میتوان هر یک از=،widthxheightو موقعیت+x+yرا حذف کرد. width و height بر حسب پیکسل هستند (یا واحدهای شبکه برای یک پنجره شبکهبندیشده)؛ موقعیت با پیشوند+از لبه چپ یا بالای صفحهنمایش اندازهگیری میشود و موقعیت با پیشوند-از لبه راست یا پایین صفحهنمایش اندازهگیری میشود. آفست میتواند منفی باشد، مانند'200x100+-9+-8'، هنگامی که لبه پنجره فراتر از لبه متناظر صفحهنمایش قرار گرفته باشد. یک رشته خالی هر هندسه تعیینشده توسط کاربر را لغو میکند و به پنجره اجازه میدهد تا به اندازه طبیعی خود بازگردد. بدون آرگومان، هندسه کنونی را به صورت رشتهای به شکل'200x200+10+10'برمیگرداند.wm_geometry()نام مستعاری ازgeometry()است.
- grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)¶
پنجره را بهعنوان یک پنجره شبکهبندیشده مدیریت میکند و رابطه بین واحدهای شبکه و پیکسلها را تعریف میکند. baseWidth و baseHeight تعداد واحدهای شبکه برای اندازه درخواستی داخلی پنجره هستند، و widthInc و heightInc اندازههای پیکسلی یک واحد شبکه افقی و یک واحد شبکه عمودی هستند. رشتههای خالی مدیریت شبکهبندیشده را غیرفعال میکنند. بدون آرگومان، یک تاپل از چهار مقدار فعلی را برمیگرداند، یا اگر پنجره شبکهبندینشده باشد
Noneرا برمیگرداند.wm_grid()نام مستعاری ازgrid()است.با مدیر هندسی grid
Grid.grid()اشتباه گرفته نشود.
- group(pathName=None)¶
رهبر یک گروه از پنجرههای مرتبط را تنظیم یا پرسوجو کنید. pathName نام مسیر رهبر گروه را مشخص میکند؛ برای مثال، مدیر پنجره ممکن است هنگامی که رهبر گروه به آیکون تبدیل میشود (iconified)، تمام پنجرههای گروه را از نگاشت خارج کند (unmap). یک رشته خالی پنجره را از هر گروه حذف میکند. بدون آرگومان، نام مسیر رهبر گروه فعلی یا یک رشته خالی را برمیگرداند.
wm_group()نام مستعاری ازgroup()است.
- iconbitmap(bitmap=None, default=None)¶
بیتمپ استفادهشده توسط مدیر پنجره برای آیکون پنجره را تنظیم یا پرسوجو میکند. bitmap یک بیتمپ را در یکی از قالبهای استاندارد پذیرفتهشده توسط Tk مشخص میکند؛ یک رشته خالی بیتمپ آیکون فعلی را لغو میکند. بدون آرگومان، نام بیتمپ آیکون فعلی یا یک رشته خالی را برمیگرداند. در ویندوز، آرگومان default یک آیکون را مشخص میکند (برای مثال یک پرونده
.ico) که به تمام پنجرههای سطح بالایی که آیکون خودشان را ندارند اعمال میشود.wm_iconbitmap()نام مستعارiconbitmap()است.
- iconify()¶
پنجره را به حالت آیکونشده درآورید. اگر پنجره هنوز برای نخستین بار نگاشت (map) نشده است، ترتیبی دهید که هنگامی که در نهایت نگاشت میشود، در حالت آیکونشده ظاهر شود.
wm_iconify()نام مستعارiconify()است.
- iconmask(bitmap=None)¶
بیتمپی را که بهعنوان نقاب برای آیکون استفاده میشود، تنظیم یا پرسوجو کنید (به
iconbitmap()مراجعه کنید). هر جا که نقاب ۰ باشد، هیچ آیکونی نمایش داده نمیشود؛ هر جا که مقدار آن ۱ باشد، بیتهای متناظر بیتمپ آیکون نمایش داده میشوند. یک رشته خالی نقاب فعلی را لغو میکند. بدون آرگومان، نام نقاب فعلی آیکون یا یک رشته خالی را برمیگرداند.wm_iconmask()نام مستعاری ازiconmask()است.
- iconname(newName=None)¶
نامی را که مدیر پنجره در داخل آیکون پنجره نمایش میدهد، تنظیم یا پرسوجو میکند. بدون آرگومان، نام فعلی آیکون را برمیگرداند، یا اگر هیچ نامی تنظیم نشده باشد، یک رشتهی خالی برمیگرداند (در این حالت، مدیر پنجره معمولاً عنوان پنجره را نمایش میدهد).
wm_iconname()یک نام مستعار برایiconname()است.
- iconphoto(default=False, *images)¶
آیکون نوار عنوان پنجره را از یک یا چند شیء
PhotoImageارائهشده در images تنظیم میکند. میتوان چندین تصویر با اندازههای مختلف (برای مثال ۱۶x۱۶ و ۳۲x۳۲) ارائه کرد تا مدیر پنجره بتواند تصویر مناسبی را انتخاب کند. دادههای تصویر در زمان فراخوانی بهعنوان یک تصویر لحظهای گرفته میشوند؛ تغییرات بعدی در تصاویر منعکس نمیشوند. اگر default درست باشد، آیکون همچنین برای همه پنجرههای سطح بالا که در آینده ایجاد میشوند اعمال میشود. در macOS فقط از اولین تصویر استفاده میشود.wm_iconphoto()نام مستعاری ازiconphoto()است.اضافه شده در نسخهی 3.3.
- iconposition(x=None, y=None)¶
راهنماییای برای مدیر پنجره دربارهی محل قرارگیری نماد پنجره تنظیم یا دریافت کنید. رشتههای خالی، راهنمایی موجود را لغو میکنند. بدون آرگومان، یک تاپل از دو مقدار فعلی را برمیگرداند، یا اگر هیچ راهنماییای فعال نباشد،
Noneرا برمیگرداند.wm_iconposition()نام مستعاری ازiconposition()است.
- iconwindow(pathName=None)¶
پنجرهای را که بهعنوان آیکون برای پنجره استفاده میشود، تنظیم یا پرسوجو کنید. هنگامی که پنجره به حالت آیکون درمیآید، pathName نگاشت میشود تا بهعنوان آیکون آن عمل کند و هنگامی که از حالت آیکون خارج میشود، دوباره از نگاشت خارج میشود. یک رشتهی خالی این ارتباط را لغو میکند. بدون آرگومان، نام مسیر پنجرهی آیکون کنونی یا یک رشتهی خالی برگردانده میشود. همهی مدیران پنجره از پنجرههای آیکون پشتیبانی نمیکنند، و این مفهوم در سکوهای غیر X11 بیمعنا است.
wm_iconwindow()نام مستعارiconwindow()است.
- manage(widget)¶
widget را به یک پنجرهی سطح بالای مستقل تبدیل میکند که توسط مدیر پنجره با نوار عنوان و غیره آراسته میشود. تنها میتوان از ابزارکهای
Frame،LabelFrameوToplevelاستفاده کرد (نسخههایtkinter.ttkپذیرفته نمیشوند)؛ ارسال هر نوع ابزارک دیگری خطایی پرتاب میکند.wm_manage()نام مستعاری برایmanage()است.اضافه شده در نسخهی 3.3.
- maxsize(width=None, height=None)¶
حداکثر ابعاد مجاز پنجره را بر حسب پیکسل (یا واحدهای شبکه برای پنجره شبکهبندیشده) تنظیم یا پرسوجو میکند. مدیر پنجره، پنجره را محدود میکند تا بزرگتر از width و height نباشد. بدون آرگومان، یک تاپل از حداکثر عرض و ارتفاع فعلی برمیگرداند. حداکثر اندازه بهطور پیشفرض برابر با اندازه صفحه است.
wm_maxsize()نام مستعاری ازmaxsize()است.
- minsize(width=None, height=None)¶
حداقل ابعاد مجاز پنجره را، بر حسب پیکسل (یا واحدهای شبکه برای پنجره شبکهبندیشده)، تنظیم یا دریافت کنید. مدیر پنجره، پنجره را محدود میکند که از width و height کوچکتر نباشد. بدون آرگومان، یک تاپل از حداقل عرض و ارتفاع کنونی برمیگرداند. حداقل اندازه بهطور پیشفرض در هر بُعد یک پیکسل است.
wm_minsize()نام مستعاری ازminsize()است.
- overrideredirect(boolean=None)¶
پرچم override-redirect را برای پنجره تنظیم یا پرسوجو میکند. هنگامی که این پرچم تنظیم شده باشد، مدیر پنجره پنجره را نادیده میگیرد: در یک قاب تزئینی قرار نمیگیرد (reparented) و کاربر نمیتواند از طریق کنترلهای معمول مدیر پنجره با آن تعامل کند. بدون آرگومان، یک مقدار بولی برمیگرداند که نشان میدهد پرچم تنظیم شده است یا خیر، یا اگر تنظیمنشده باشد،
Noneبرمیگرداند. این پرچم تنها زمانی بهطور قابلاتکا رعایت میشود که پنجره برای نخستین بار به نگاشت درآید یا از حالت withdrawn دوباره به نگاشت درآید (remapped).wm_overrideredirect()یک نام مستعار برایoverrideredirect()است.
- positionfrom(who=None)¶
منشأ موقعیت فعلی پنجره را تنظیم یا پرسوجو میکند. who یا
'program'است یا'user'و نشان میدهد که موقعیت را برنامه درخواست کرده است یا کاربر؛ یک رشتهی خالی منشأ فعلی را لغو میکند. بدون آرگومان، منشأ فعلی را برمیگرداند، یا اگر هیچ منشأی تنظیم نشده باشد، یک رشتهی خالی برمیگرداند. Tk بهطور خودکار، هنگامی کهgeometry()فراخوانی میشود، منشأ را روی'user'تنظیم میکند، مگر اینکه بهطور صریح روی'program'تنظیم شده باشد.wm_positionfrom()نام مستعاری ازpositionfrom()است.
- protocol(name=None, func=None)¶
func بهعنوان هندلر پروتکل name مدیر پنجره ثبت میشود؛ name یک اتم (atom) مانند
'WM_DELETE_WINDOW'،'WM_SAVE_YOURSELF'یا'WM_TAKE_FOCUS'است. سپس هرگاه مدیر پنجره پیامی از آن پروتکل ارسال کند، func فراخوانی میشود. Tk یک هندلر پیشفرضWM_DELETE_WINDOWنصب میکند که پنجره را نابود میکند؛ این متد میتواند آن را جایگزین کند. اگر func یک رشتهی خالی باشد، هندلر حذف میشود. در صورت ارائهی فقط name، نام فرمان هندلر ثبتشدهی آن برگردانده میشود، یا اگر هیچ هندلری تنظیم نشده باشد، یک رشتهی خالی برگردانده میشود (هندلر پیشفرضWM_DELETE_WINDOWگزارش نمیشود)؛ بدون آرگومان، یک تاپل از پروتکلهایی که در حال حاضر هندلر دارند برگردانده میشود.wm_protocol()نام مستعارprotocol()است.
- resizable(width=None, height=None)¶
کنترل میکند که آیا کاربر مجاز است بهصورت تعاملی اندازهی پنجره را تغییر دهد یا خیر. width و height مقادیر بولی هستند که تعیین میکنند آیا عرض و ارتفاع پنجره قابل تغییر هستند یا خیر. بدون آرگومان، یک تاپل از دو مقدار
0/1برمیگرداند که نشان میدهد هر بُعد در حال حاضر قابل تغییر اندازه است یا خیر. بهطور پیشفرض، یک پنجره در هر دو بُعد قابل تغییر اندازه است.wm_resizable()نام مستعاری برایresizable()است.
- sizefrom(who=None)¶
منبع اندازهی فعلی پنجره را تنظیم یا پرسوجو میکند. who میتواند
'program'یا'user'باشد و نشان میدهد که اندازه توسط برنامه درخواست شده است یا توسط کاربر؛ یک رشته خالی منبع فعلی را لغو میکند. بدون آرگومان، منبع فعلی را برمیگرداند، یا اگر هیچ منبعی تنظیم نشده باشد، یک رشته خالی را برمیگرداند.wm_sizefrom()یک نام مستعار برایsizefrom()است.
- state(newstate=None)¶
وضعیت پنجره را تنظیم یا پرسوجو میکند. بدون آرگومان، وضعیت فعلی را برمیگرداند: یکی از
'normal'،'iconic'،'withdrawn'،'icon'یا'zoomed'(فقط در Windows و macOS).'iconic'به پنجرهای اشاره دارد که به آیکون تبدیل شده است، در حالی که'icon'به پنجرهای اشاره دارد که بهعنوان آیکون برای پنجرهای دیگر عمل میکند (بهiconwindow()مراجعه کنید)؛ نمیتوان وضعیت'icon'را تنظیم کرد.wm_state()نام مستعاری ازstate()است.با
ttk.Widget.stateاشتباه گرفته نشود.
- title(string=None)¶
عنوان پنجره را تنظیم یا دریافت کنید، که مدیر پنجره باید آن را در نوار عنوان پنجره نمایش دهد. بدون آرگومان، عنوان فعلی را برمیگرداند. عنوان بهطور پیشفرض نام پنجره است.
wm_title()یک نام مستعار ازtitle()است.
- transient(master=None)¶
پنجره را بهعنوان یک پنجره گذرا (مانند یک منوی بازشو یا جعبه محاورهای) علامتگذاری میکند که از طرف master، نام مسیر یک پنجره سطح بالای دیگر، عمل میکند. یک رشته خالی وضعیت گذرا را پاک میکند. بدون آرگومان، نام مسیر master جاری یا یک رشته خالی را برمیگرداند. یک پنجره گذرا تغییرات وضعیت master خود را منعکس میکند و ممکن است توسط مدیر پنجره بهشکل متفاوتی آراسته شود؛ تبدیل یک پنجره به پنجره گذرای خودش خطا است.
wm_transient()نام مستعاری ازtransient()است.
- withdraw()¶
پنجره را از صفحهنمایش خارج میکند، آن را از نگاشت خارج کرده و باعث میشود مدیر پنجره آن را فراموش کند. اگر پنجره هرگز نگاشت نشده باشد، در عوض در حالت خارجشده (withdrawn) نگاشت میشود. گاهی لازم است پنجرهای را خارج کنید و سپس دوباره آن را نگاشت کنید (برای مثال با
deiconify()) تا برخی مدیرهای پنجره متوجه تغییرات ویژگیهای پنجره شوند.wm_withdraw()یک نام مستعار برایwithdraw()است.
- class tkinter.Pack¶
مدیر چیدمانی که ابزارکها را با چسباندن آنها به کنارههای ظرفشان مرتب میکند. کلاس میکساین
Packتوسط همه ابزارکها (از طریقWidget) به ارث برده میشود و متدهایی را برای مدیریت یک ابزارک با مدیر چیدمان pack فراهم میکند. همچنین مدیریت هندسه را ببینید.توجه
Pack،PlaceوGridهمگی نامهای کوتاه متدforget()،info()،slaves()،content()وpropagate()را تعریف میکنند. در یک ابزارک، این نامهای بدون پیشوند به نسخههای مربوط به مدیر pack حل میشوند، زیراPackوMiscدر ترتیب حل متد، پیش ازPlaceوGridقرار دارند، صرفنظر از اینکه کدام مدیر واقعاً ابزارک را مدیریت میکند؛ وconfigure()/config()گزینههای ابزارک را پیکربندی میکنند، نه هندسهی آن. برای عمل بر یک مدیر هندسهی خاص، از متدهای صریحpack_*،grid_*وplace_*استفاده کنید (و برای پیکربندی هندسه ازpack،gridوplace).- pack_configure(cnf={}, **kw)¶
- pack(cnf={}, **kw)¶
ابزارک را درون ظرف خود بستهبندی کنید و آن را نسبت به ابزارکهای همسطحی که از قبل در آنجا بستهبندی شدهاند، موقعیتدهی کنید. گزینههای پشتیبانیشده عبارتند از:
- side
اینکه در برابر کدام سمت از ظرف، ابزارک چیده شود:
'top'(پیشفرض)،'bottom'،'left'یا'right'.- fill
اینکه ابزارک برای پر کردن ناحیهی خود کشیده شود یا خیر:
'none'(پیشفرض)،'x'،'y'یا'both'.- expand
اینکه ابزارک باید گسترش یابد تا هر فضای اضافی در ظرف خود را اشغال کند (یک بولی، پیشفرض false).
- anchor
محل قرارگیری ابزارک در قطعهی خود (parcel)، هنگامی که قطعه از ابزارک بزرگتر باشد: لنگری مانند
'n'یا'sw'(پیشفرض'center').- ipadx, ipady
فاصلهی داخلی افزودهشده در سمت چپ و راست (ipadx) یا بالا و پایین (ipady) ابزارک، بهعنوان یک فاصلهی صفحهای (پیشفرض
0).- padx, pady
فاصلهگذاری بیرونی در سمت چپ و راست (padx) یا بالا و پایین (pady) ابزارک، بهصورت یک فاصلهی صفحهای یا جفتی از دو فاصله برای دو طرف (پیشفرض
0).- after
ابزارک را پس از ابزارک دادهشده در ترتیب چیدمان، با استفاده از همان ظرف بچینید.
- before
ابزارک را پیش از ابزارک دادهشده در ترتیب چیدمان، با استفاده از همان ظرف بچینید.
- in_
ظرفی که ابزارک در آن بستهبندی میشود؛ مقدار پیشفرض آن ابزارک والد است.
pack()،configure()وconfig()نامهای مستعارpack_configure()هستند.
- pack_forget()¶
ابزارک را از نمایش برمیدارد و آن را از ترتیب pack حذف میکند و گزینههای pack آن را فراموش میکند. بعداً میتوان آن را دوباره با
pack_configure()pack کرد.forget()نام مستعارpack_forget()است، به جز درPanedWindow،ttk.Notebookوttk.PanedWindowکه متدforget()خود را ارائه میدهند.با
Wm.forget()اشتباه گرفته نشود.
- pack_info()¶
یک دیکشنری از گزینههای فعلی بستهبندی (packing) ابزارک برمیگرداند.
info()یک نام مستعار برایpack_info()است.
- pack_propagate()¶
- pack_propagate(flag)
مانند
Misc.pack_propagate()، با در نظر گرفتن این ابزارک بهعنوان یک ظرف: فعال یا غیرفعال کردن انتشار هندسه.propagate()نام مستعاری ازpack_propagate()است.
- pack_slaves()¶
مشابه
Misc.pack_slaves(): فهرست ابزارکهای تعبیهشده در این ابزارک را برمیگرداند.slaves()نام مستعاری ازpack_slaves()است.
- class tkinter.Place¶
مدیر چیدمانی که ابزارکها را در موقعیتها و اندازههای مشخص درون ظرفشان قرار میدهد. همه ابزارکها (از طریق
Widget) از کلاس میکساینPlaceارث میبرند. همچنین ببینید مدیریت هندسه.- place_configure(cnf={}, **kw)¶
- place(cnf={}, **kw)¶
ابزارک را درون ظرف خود در یک موقعیت مطلق یا نسبی قرار دهید. گزینههای پشتیبانیشده عبارتند از:
- x, y
موقعیت مطلق افقی و عمودی نقطهی لنگر ابزارک، بهصورت فاصلهی صفحه (پیشفرض
0).- relx, rely
موقعیت افقی و عمودی نقطهی لنگر ابزارک بهصورت کسری از عرض و ارتفاع ظرف، که در آن
0.0لبهی چپ یا بالا و1.0لبهی راست یا پایین است. اگر هر دو گزینهی مطلق و نسبی داده شوند، مقادیر آنها با هم جمع میشوند.- anchor
اینکه کدام نقطه از ابزارک در موقعیت دادهشده قرار میگیرد: یک لنگر مانند
'n'یا'se'(پیشفرض'nw').- عرض، ارتفاع
عرض و ارتفاع مطلق ابزارک، بهصورت فاصلهای روی صفحه. بهطور پیشفرض، از اندازه درخواستی ابزارک استفاده میشود.
- relwidth, relheight
عرض و ارتفاع ابزارک بهصورت کسری از عرض و ارتفاع ظرف. اگر هر دو گزینهی مطلق و نسبی داده شوند، مقادیر آنها با هم جمع میشوند.
- bordermode
چگونگی تأثیر حاشیهی ظرف بر جایگذاری:
'inside'(پیشفرض) ناحیهی درون حاشیه را اندازهگیری میکند،'outside'ناحیهی شامل حاشیه را اندازهگیری میکند، و'ignore'از ناحیهی رسمی X استفاده میکند.- in_
ظرف که ابزارک نسبت به آن جایگذاری میشود؛ باید والد ابزارک یا یکی از نوادگان والد باشد و مقدار پیشفرض آن والد است.
place()،configure()وconfig()نامهای مستعارplace_configure()هستند.
- place_forget()¶
ابزارک را از نگاشت خارج میکند و آن را از جایگذاری حذف میکند، بهطوریکه گزینههای جایگذاری آن فراموش میشوند.
- place_info()¶
یک دیکشنری از گزینههای جاری place ابزارک برمیگرداند.
- place_slaves()¶
مشابه
Misc.place_slaves(): فهرست ابزارکهای قرار گرفته در این ابزارک را برمیگرداند.
- class tkinter.Grid¶
مدیر چیدمانی که ابزارکها را در یک شبکهی دوبعدی از ردیفها و ستونها درون ظرف آنها میچیند. همهی ابزارکها میکساین
Gridرا (از طریقWidget) به ارث میبرند. همچنین مدیریت هندسه را ببینید.- grid_configure(cnf={}, **kw)¶
- grid(cnf={}, **kw)¶
ابزارک را در یک خانه از شبکهی ظرف خود قرار میدهد.
با
Wm.grid()اشتباه گرفته نشود.گزینههای پشتیبانیشده عبارتند از:
- ردیف، ستون
ردیف و ستون سلولی که ابزارک در آن قرار میگیرد، از
0شمرده میشود. column بهطور پیشفرض برابر با ستون پس از ابزارک قبلی قرار دادهشده در همان فراخوانیgrid_configure()(یا0) است، و row بهطور پیشفرض برابر با ردیف خالی بعدی است.- rowspan, columnspan
تعداد ردیفها و ستونهایی که ابزارک باید در بر بگیرد (پیشفرض
1).- sticky
نحوهی قرار دادن یا کشیدن ابزارک هنگامی که سلول آن بزرگتر از ابزارک است: رشتهای شامل صفر یا چند تا از نویسههای
'n'،'s'،'e'و'w'که اضلاع سلول را که ابزارک به آنها میچسبد مشخص میکند. مشخص کردن هر دو'n'و's'(یا'e'و'w') باعث میشود ابزارک کشیده شود تا ارتفاع (یا عرض) سلول را پر کند. مقدار پیشفرض''است که ابزارک را در اندازهی درخواستی آن در مرکز قرار میدهد.- ipadx, ipady
فاصلهی داخلی افزودهشده در سمت چپ و راست (ipadx) یا بالا و پایین (ipady) ابزارک، بهعنوان یک فاصلهی صفحهای (پیشفرض
0).- padx, pady
فاصلهگذاری بیرونی در سمت چپ و راست (padx) یا بالا و پایین (pady) ابزارک، بهصورت یک فاصلهی صفحهای یا جفتی از دو فاصله برای دو طرف (پیشفرض
0).- in_
ظرف که ابزارک در شبکهی آن قرار میگیرد؛ بهطور پیشفرض، ابزارک والد است.
grid()،configure()وconfig()نامهای مستعارgrid_configure()هستند.
- grid_forget()¶
ابزارک را از نگاشت خارج کرده و آن را از شبکه حذف میکند، گزینههای شبکه آن را نیز فراموش میکند.
- grid_remove()¶
نگاشت ابزارک را لغو کرده و آن را از شبکه حذف میکند، اما گزینههای شبکهی آن را به خاطر میسپارد تا در صورت قرارگیری مجدد در شبکه، به همان سلول بازگردانده شود.
- grid_info()¶
یک دیکشنری از گزینههای فعلی شبکهبندی (grid) ابزارک برمیگرداند.
- grid_bbox(column=None, row=None, col2=None, row2=None)¶
مشابه
Misc.grid_bbox().bbox()نام مستعاری ازgrid_bbox()است، بهجز درCanvas،Listbox،Spinbox،Text،ttk.Entryوttk.Treeview، که متدbbox()خود را ارائه میدهند.
- grid_columnconfigure(index, cnf={}, **kw)¶
همانند
Misc.grid_columnconfigure(): گزینههای یک ستون شبکه (مانند weight، minsize، pad و uniform) را پرسوجو یا تنظیم میکند.columnconfigure()نام مستعاری ازgrid_columnconfigure()است.
- grid_rowconfigure(index, cnf={}, **kw)¶
مشابه
Misc.grid_rowconfigure(): گزینههای یک ردیف شبکه را پرسوجو یا تنظیم میکند.rowconfigure()نام مستعاری ازgrid_rowconfigure()است.
- grid_location(x, y)¶
مشابه
Misc.grid_location():(column, row)سلولی را که پیکسل در x، y را میپوشاند برمیگرداند.location()نام مستعاری ازgrid_location()است.
- grid_size()¶
مانند
Misc.grid_size(): یک تاپل(columns, rows)برمیگرداند که اندازهی شبکه را نشان میدهد.size()یک نام مستعار برایgrid_size()است، بهجز در ابزارکListbox، که متدsize()خود را ارائه میدهد.
- grid_propagate()¶
- grid_propagate(flag)
همان
Misc.grid_propagate()است.
- grid_slaves(row=None, column=None)¶
همانند
Misc.grid_slaves(): ابزارکهای مدیریتشده در شبکه را بازمیگرداند، که بهصورت اختیاری به یک ردیف و/یا ستون محدود شدهاند.
- class tkinter.XView¶
میکساینکه رابط پیمایش افقی مشترک میان ابزارکهایی مانند
Entry،Canvas،Listbox،TextوSpinboxرا فراهم میکند. متدxview()یک ابزارک بهعنوان command یکScrollbarافقی ثبت میشود.- xview(*args)¶
موقعیت افقی نما را دریافت یا تغییر میدهد. بدون آرگومان، یک تاپل
(first, last)از دو کسر بین ۰ و ۱ برمیگرداند که بخشی از سند را که در حال حاضر قابل مشاهده است، نشان میدهند. در غیر این صورت، آرگومانها به فرمان ابزارکxviewدر Tk ارسال میشوند و معمولاً توسط یک نوار پیمایش تولید میشوند؛xview_moveto()وxview_scroll()رابط آسانتری فراهم میکنند.
- xview_moveto(fraction)¶
نما را بهگونهای تنظیم کنید که fraction از عرض کل سند در سمت چپ، خارج از صفحه قرار گیرد. fraction عددی بین ۰ و ۱ است.
- xview_scroll(number, what)¶
نما را به اندازهی number واحد به چپ یا راست جابهجا کنید. what میتواند
'units'یا'pages'باشد؛ number منفی باعث پیمایش به چپ و number مثبت باعث پیمایش به راست میشود.
- class tkinter.YView¶
میکساینرابط پیمایش عمودی مشترک میان ابزارکهایی مانند
Canvas،ListboxوTextرا فراهم میکند. متدyview()یک ابزارک بهعنوان فرمان یکScrollbarعمودی ثبت میشود.- yview(*args)¶
موقعیت عمودی نما را پرسوجو میکند یا تغییر میدهد. بدون آرگومان، یک تاپل
(first, last)از دو کسر بین ۰ و ۱ برمیگرداند که نشاندهندهی بخشی از سند است که در حال حاضر قابل مشاهده است. در غیر این صورت، آرگومانها، که معمولاً توسط نوار لغزش تولید میشوند، به فرمانyviewابزارک Tk ارسال میشوند؛yview_moveto()وyview_scroll()رابط آسانتری فراهم میکنند.
- yview_moveto(fraction)¶
نما را طوری تنظیم کنید که fraction از ارتفاع کل سند در بالای صفحه خارج از دید باشد. fraction عددی بین ۰ و ۱ است.
- yview_scroll(number, what)¶
نما را به اندازهی number واحد به بالا یا پایین جابهجا کنید. what یکی از
'units'یا'pages'است؛ number منفی به بالا پیمایش میکند و مقدار مثبت به پایین پیمایش میکند.
- class tkinter.BaseWidget(master, widgetName, cnf={}, kw={}, extra=())¶
کلاس پایهی داخلی برای همهی ابزارکها. این کلاس از
Miscارثبری میکند و سازوکار ایجاد ابزارک Tk زیربنایی را میافزاید؛ کد برنامه معمولاً بهجای نمونهسازی مستقیمBaseWidgetازWidgetیا یک کلاس ابزارک مشخص استفاده میکند.- destroy()¶
این ابزارک و تمام فرزندان آن را نابود میکند، ابزارکهای Tk مربوطه را حذف میکند و دستورات Tcl مرتبط را حذف میکند.
- class tkinter.Widget(master, widgetName, cnf={}, kw={}, extra=())¶
کلاس پایه داخلی برای ابزارکهای استاندارد. این کلاس،
BaseWidgetرا با کلاسهای میکساین مدیر چیدمانیعنیPack،PlaceوGridترکیب میکند تا هر ابزارک بتواند توسط هر یک از سه مدیر چیدمان مدیریت شود. کلاسهای ابزارک عینی (Button،Labelو غیره) ازWidgetمشتق میشوند.
ابزارکهای Toplevel¶
- class tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=True, sync=False, use=None)¶
یک ابزارک Tk سطح بالا میسازد، که معمولاً پنجرهی اصلی یک برنامه است، و یک مفسر Tcl برای این ابزارک راهاندازی میکند. هر نمونه، مفسر Tcl مرتبط با خود را دارد. از
MiscوWmارث میبرد.برای ایجاد یک مفسر Tcl بدون مقداردهی اولیهی زیرسیستم Tk، بهجای آن از تابع کارخانهی
Tcl()استفاده کنید.کلاس
Tkمعمولاً با استفاده از تمام مقادیر پیشفرض نمونهسازی میشود. با این حال، آرگومانهای کلیدواژهای زیر در حال حاضر شناسایی میشوند:- screenName
هنگامی که (بهصورت یک رشته) داده شود، متغیر محیطی
DISPLAYرا تنظیم میکند. (فقط X11)- baseName
نام پرونده پروفایل. بهطور پیشفرض، baseName از نام برنامه (
sys.argv[0]) گرفته میشود.- className
نام کلاس ابزارک. بهعنوان پرونده پروفایل و همچنین بهعنوان نامی که Tcl با آن فراخوانی میشود (argv0 در interp) استفاده میشود.
- useTk
اگر
Trueباشد، زیرسیستم Tk را راهاندازی میکند. تابعtkinter.Tcl()این را رویFalseقرار میدهد.- sync
اگر
Trueباشد، تمام دستورات سرور X بهصورت همگام اجرا میشوند، بهطوری که خطاها بلافاصله گزارش میشوند. میتوان از آن برای اشکالزدایی استفاده کرد. (فقط X11)- use
id پنجرهای را مشخص میکند که برنامه باید به جای ایجاد شدن بهعنوان یک پنجره سطح بالای مستقل، در آن تعبیه شود. id باید به همان شیوهای مشخص شود که مقدار گزینه -use برای ابزارکهای سطح بالا مشخص میشود (یعنی شکلی مانند شکلی دارد که توسط
winfo_id()برگردانده میشود).توجه داشته باشید که در برخی سکوها، این مورد تنها در صورتی بهدرستی کار میکند که id به یک frame یا toplevel از Tk اشاره کند که گزینهی -container آن فعال باشد.
Tkپروندههای پروفایل با نامهای.className.tclو.baseName.tclرا میخواند و آنها را در مفسر Tcl تفسیر میکند وexec()را روی محتوای.className.pyو.baseName.pyفراخوانی میکند. مسیر پروندههای پروفایل، متغیر محیطیHOMEاست یا اگر تعریفنشده باشد،os.curdirاست.توجه
در ویندوز، ایجاد یک مفسر Tcl (با ایجاد نمونهای از
Tkیا فراخوانیTcl()) متغیر محیطیHOMEرا برای فرایند، اگر از قبل تنظیم نشده باشد، به%HOMEDRIVE%%HOMEPATH%(یاUSERPROFILE، یاc:\) تنظیم میکند. این کار توسط Tcl انجام میشود و میتواند بر سایر کدهایی کهHOMEرا میخوانند تأثیر بگذارد.- tk¶
شیء برنامهی Tk که با نمونهسازی از
Tkایجاد شده است. این شیء دسترسی به مفسر Tcl را فراهم میکند. هر ابزارکی که به همان نمونه ازTkمتصل باشد، مقدار یکسانی برای ویژگیtkخود دارد.
- master¶
شیء ابزارکی که این ابزارک را در بر میگیرد. برای
Tk،masterبرابرNoneاست، زیرا پنجرهی اصلی است. اصطلاحات master و parent مشابهاند و گاهی بهجای یکدیگر بهعنوان نام آرگومان استفاده میشوند؛ با این حال، فراخوانیwinfo_parent()رشتهای از نام ابزارک را برمیگرداند، در حالی کهmasterشیء را برمیگرداند. parent/child رابطهی درختمانند را بازتاب میدهد، در حالی که master (یا container)/content ساختار ظرف را بازتاب میدهد.
- children¶
فرزندان مستقیم این ابزارک بهصورت یک
dictبا نام ابزارکهای فرزند بهعنوان کلیدها و اشیای نمونهی فرزند بهعنوان مقدارها.
- destroy()¶
این ابزارک و همه ابزارکهای زیرمجموعه آن را نابود میکند و برای پنجره اصلی، اتصال به مفسر Tcl زیرین را پایان میدهد.
- loadtk()¶
بارگذاری و مقداردهی اولیهی زیرسیستم Tk را به پایان میرساند. این متد تنها زمانی لازم است که مفسر بدون Tk ایجاد شده باشد (برای مثال از طریق
Tcl())؛ وقتی useTk برابر true باشد، بهصورت خودکار فراخوانی میشود.
- readprofile(baseName, className)¶
پروندههای پروفایل کاربر
.className.tclو.baseName.tclرا میخواند و در مفسر Tcl بارگذاری (source) میکند و پروندههای متناظر.className.pyو.baseName.pyرا اجرا میکند. این کار در هنگام مقداردهی اولیه فراخوانی میشود؛ توضیح سازنده را در بالا ببینید.
- report_callback_exception(exc, val, tb)¶
یک استثنای کالبک را گزارش میدهد. این هنگامی فراخوانی میشود که یک استثنا از یک کالبک Tkinter به بیرون منتشر شود؛ exc، val و tb نوع استثنا، مقدار و ردگیری پشته هستند، همانگونه که
sys.exc_info()برمیگرداند. پیادهسازی پیشفرض یک ردگیری پشته را درsys.stderrچاپ میکند. میتوان آن را برای سفارشیسازی مدیریت خطا بازنویسی کرد، برای مثال برای نمایش ردگیری پشته در یک پنجرهی محاورهای.
- class tkinter.Toplevel(master=None, cnf={}, **kw)¶
یک ابزارک
Toplevelیک پنجره سطحبالا است، مشابه یکFrameبا این تفاوت که والد X آن پنجره ریشه یک صفحهنمایش است، نه والد منطقی آن. هدف اصلی آن این است که بهعنوان ظرفی برای جعبههای محاوره و سایر مجموعههای ابزارکها عمل کند؛ تنها ویژگیهای قابل مشاهده آن پسزمینه و یک حاشیه سهبعدی اختیاری است. از گزینههای قابلتوجه میتوان به menu اشاره کرد که یکMenuرا بهعنوان نوار منوی پنجره نصب میکند. این ابزارک ازBaseWidgetوWmارث میبرد، بنابراین یک پنجره سطحبالا توسط مدیر پنجره مدیریت میشود. برای فهرست کامل گزینهها، به صفحه راهنمایtoplevelدر Tk مراجعه کنید.
کلاسهای ابزارک¶
- class tkinter.Button(master=None, cnf={}, **kw)¶
یک ابزارک
Buttonیک رشته متنی، بیتمپ یا تصویر را نمایش میدهد و هنگامی که کاربر آن را فشار دهد (با کلیک دکمه ۱ ماوس روی دکمه یا، هنگامی که دکمه تمرکز دارد، با فشار دادن کلید فاصله)، یک فرمان را فراخوانی میکند. این ابزارک ازWidgetارث میبرد. علاوه بر گزینههای استاندارد ابزارک، یک دکمه گزینههایی را میپذیرد که در صفحه راهنمایbuttonدر Tk مستند شدهاند، مانند command (کالبکی که هنگام فشار دادن دکمه فراخوانی میشود)، textvariable، state و default.- invoke()¶
فرمان مرتبط با دکمه را، در صورت وجود، فراخوانی کنید و نتیجه آن را برگردانید، یا اگر فرمانی با دکمه مرتبط نباشد، یک رشته خالی برگردانید. اگر وضعیت دکمه
disabledباشد، این عمل نادیده گرفته میشود.
- flash()¶
دکمه را با چند بار نمایش مجدد، بین رنگهای فعال و عادی بهصورت متناوب چشمک بزنید. در پایان چشمک، دکمه در همان وضعیت عادی یا فعالی باقی میماند که هنگام فراخوانی متد داشت. اگر وضعیت دکمه
disabledباشد، این عمل نادیده گرفته میشود.
- class tkinter.Canvas(master=None, cnf={}, **kw)¶
ابزارک
Canvasگرافیک ساختاریافته را پیادهسازی میکند. این ابزارک هر تعداد آیتم را نمایش میدهد، مانند کمانها، سطرهای، بیضیها، چندضلعیها، مستطیلها، متن، بیتمپها، تصاویر و پنجرههای تعبیهشده، که میتوان آنها را ترسیم کرد، جابهجا کرد، تغییر رنگ داد و به رویدادها متصل کرد. این ابزارک ازWidget،XViewوYViewارث میبرد، بنابراین میتوان نما را بهصورت افقی و عمودی باxview()وyview()پیمایش کرد. برای فهرست کامل گزینههای ابزارک و آیتم، به صفحه راهنمایcanvasدر Tk مراجعه کنید.هر آیتم دارای یک شناسه عدد صحیح یکتا، که هنگام ایجاد اختصاص داده میشود، و صفر یا چند برچسب رشتهای است. برچسب یک رشته دلخواه است که به شکل عدد صحیح نیست؛ ممکن است یک برچسب یکسان بین بسیاری از آیتمها مشترک باشد، که این امر برچسبها را برای گروهبندی آیتمها مناسب میسازد. برچسب ویژه
'all'با همه آیتمهای بوم مطابقت دارد، و'current'با بالاترین آیتم زیر مکاننما ماوس مطابقت دارد. بیشتر متدها یک آرگومان tagOrId میگیرند که ممکن است یک شناسه عدد صحیح باشد که یک آیتم واحد را مشخص میکند، یا برچسبی باشد که صفر یا چند آیتم را مشخص میکند؛ همانطور که در صفحه راهنمایcanvasTk توضیح داده شده است، یک برچسب همچنین میتواند یک عبارت منطقی از برچسبها باشد که با عملگرهای&&،||،^،!و پرانتز ترکیب شده است. هنگامی که به متدی که روی یک آیتم واحد عمل میکند، یک tagOrId داده شود که با چند آیتم مطابقت دارد، معمولاً از پایینترین آیتم منطبق در فهرست نمایش استفاده میکند.آیتمها در یک فهرست نمایش نگهداری میشوند که ترتیب ترسیم را تعیین میکند: آیتمهایی که در فهرست دیرتر میآیند، روی آیتمهای پیشین ترسیم میشوند. یک آیتم تازه ایجادشده در بالای فهرست قرار میگیرد؛ ترتیب را میتوان با
tag_raise()وtag_lower()تغییر داد.- create_arc(*args, **kw)¶
- create_bitmap(*args, **kw)¶
- create_image(*args, **kw)¶
- create_line(*args, **kw)¶
- create_oval(*args, **kw)¶
- create_polygon(*args, **kw)¶
- create_rectangle(*args, **kw)¶
- create_text(*args, **kw)¶
- create_window(*args, **kw)¶
یک آیتم جدید از نوع متناظر ایجاد میشود و شناسهی عدد صحیح آن را برمیگرداند. هر متد بهصورت
create_TYPE(coord..., **options)فراخوانی میشود: آرگومانهای جایگاهی ابتدایی مختصاتی را ارائه میدهند که آیتم را تعریف میکنند (بهصورت اعداد جداگانه، بهصورت یک دنباله از اعداد، یا بهصورت جفتهای مختصات)، و آرگومانهای کلیدواژهای گزینههای مختص آیتم را تنظیم میکنند. مختصات و فاصلههای صفحه میتوانند بهصورت اعداد (که بهعنوان پیکسل تفسیر میشوند) یا بهصورت رشتههایی با پسوند واحد ('m'،'c'،'i'یا'p'برای میلیمتر، سانتیمتر، اینچ یا نقاط چاپگر) داده شوند، اما همیشه بر حسب پیکسل ذخیره و برگردانده میشوند.انواع آیتمها عبارتند از:
arc(ناحیهای کمانشکل که بخشی از یک بیضی است و با دو گوشه مقابل بهصورت موربx1, y1, x2, y2از مستطیل دربرگیرنده تعریف میشود)؛bitmap(یک بیتمپ دو رنگ که در نقطهx, yقرار دارد)؛image(یک تصویر Tk که در نقطهx, yقرار دارد)؛line(یک خط یا منحنی که از نقاطx1, y1, ..., xn, ynمیگذرد)؛oval(یک دایره یا بیضی محاطشده در مستطیلx1, y1, x2, y2)؛polygon(یک چندضلعی بسته که از نقاطx1, y1, ..., xn, ynمیگذرد)؛rectangle(یک مستطیل با گوشههایx1, y1, x2, y2)؛text(یک رشته متن که در نقطهx, yقرار دارد)؛ وwindow(یک ابزارک فرزند تعبیهشده در بوم در نقطهx, yکه با گزینه window مشخص میشود).بیشتر انواع آیتم، مجموعهی مشترکی از گزینههای استاندارد آیتم و چند گزینهی مختص هر نوع را میپذیرند. نام گزینهها بهعنوان آرگومانهای کلیدواژهای، بدون خط تیرهی آغازین ارسال میشوند.
گزینههای استاندارد آیتم عبارتند از:
- fill
رنگی که برای پر کردن درون آیتم، یا برای ترسیم یک آیتم از نوع خط یا نویسههای یک آیتم از نوع متن استفاده میشود. رشته خالی (پیشفرض برای همهی انواع بهجز خط و متن) آیتم را بدون پر شدن باقی میگذارد.
- outline
رنگی که برای رسم خط دور آیتم استفاده میشود. یک رشتهی خالی هیچ خط دوری رسم نمیکند.
- width
پهنای خط دور، با مقدار پیشفرض
1.0. اگر outline خالی باشد، هیچ تأثیری ندارد.- dash
الگوی خطچین برای خط دور، که یا بهصورت دنبالهای از طول قطعهها بر حسب پیکسل داده میشود یا بهصورت رشتهای از نویسههای
'.'،','،'-'،'_'و فاصله. الگوی خالی (پیشفرض) یک خط دور توپر رسم میکند.- dashoffset
آفست شروع بر حسب پیکسل در الگوی dash. اگر الگوی dash وجود نداشته باشد، نادیده گرفته میشود.
- stipple
یک بیتمپ که بهعنوان الگوی نقطهنگاری (stipple pattern) هنگام پر کردن آیتم استفاده میشود. تنها در X11 بهخوبی پشتیبانی میشود.
- outlinestipple
یک بیتمپ که بهعنوان الگوی stipple هنگام رسم خط دور استفاده میشود. اگر outline خالی باشد، هیچ تأثیری ندارد.
- offset, outlineoffset
آفست الگوهای نقطهنگاری (stipple) برای پر کردن و خط دور، که بهصورت
'x,y'یا بهعنوان یک سمت مانند'n'،'se'یا'center'داده میشود. آفستهای نقطهنگاری فقط در X11 پشتیبانی میشوند.- state
وضعیت بوم را برای این آیتم بازنویسی میکند؛ یکی از
'normal'،'disabled'یا'hidden'.- tags
یک برچسب یا دنبالهای از برچسبها برای انتساب به آیتم، که جایگزین برچسبهای موجود میشود.
بسیاری از این گزینهها دارای گونههای active... و disabled... هستند (مانند activefill، disabledfill، activewidth، disableddash، activeoutline، disabledstipple) که هنگام فعال بودن آیتم (قرار داشتن زیر مکاننما ماوس) یا در وضعیت غیرفعال بودن آن، جایگزین گزینهی پایه میشوند.
انواع آیتم زیر از گزینههای اضافی پشتیبانی میکنند.
برای آیتمهای
arc:- start
آغاز محدودهی زاویهای کمان، بر حسب درجه که خلاف جهت عقربههای ساعت از موقعیت ساعت ۳ اندازهگیری میشود.
- extent
اندازهی بازهی زاویهای، بر حسب درجه، در خلاف جهت عقربههای ساعت از start.
- style
نحوه ترسیم کمان:
'pieslice'(پیشفرض)،'chord'یا'arc'.
برای آیتمهای
line:- arrow
محل رسم سرپیکانها:
'none'(پیشفرض)،'first'،'last'یا'both'.- arrowshape
دنبالهای از سه فاصله که شکل نوک پیکانها را توصیف میکند.
- capstyle
نحوه رسم انتهای سطرهای:
'butt'(پیشفرض)،'projecting'یا'round'.- joinstyle
نحوهی رسم رئوس خط:
'round'(پیشفرض)،'bevel'یا'miter'.- smooth
روش هموارسازی: یک مقدار نادرست (پیشفرض) برای حالت بدون هموارسازی، یا
'true'/'bezier'یا'raw'برای رسم خط بهصورت منحنی.- splinesteps
تعداد پارهسطرهایی که هر اسپلاین (spline) را هنگام فعال بودن smooth تقریب میزنند.
برای آیتمهای
polygon:- joinstyle, smooth, splinesteps
در مورد آیتمهای
line، بر خط پیرامونی چندضلعی اعمال میشود.
برای آیتمهای
text:- text
رشتهای برای نمایش؛ نویسههای خط جدید، سطرهای جدید را آغاز میکنند.
- font
قلم استفادهشده برای متن.
- justify
چگونگی تراز سطرهای:
'left'(پیشفرض)،'right'یا'center'.- anchor
چگونگی قرارگیری متن نسبت به نقطهی آن، که مقدار پیشفرض آن
'center'است.- width
حداکثر طول خط؛ اگر غیرصفر باشد، سطرهای در فاصلهها شکسته میشوند.
- angle
میزان چرخش متن در خلاف جهت عقربههای ساعت حول نقطه موقعیتدهی آن، از
0.0تا360.0(پیشفرض0.0).- underline
اندیس نویسهای که باید زیر آن خط کشیده شود، یا
-1برای هیچکدام.
برای آیتمهای
bitmap:- bitmap
بیتمپ برای نمایش.
- anchor
نحوهی قرارگیری بیتمپ نسبت به نقطهی آن.
- پسزمینه، پیشزمینه
رنگهای استفادهشده برای پیکسلهای
0و1بیتمپ؛ یک background خالی، پیکسلهای0را شفاف میکند. هر دو دارای گونههای active... و disabled... هستند و bitmap دارای گونههای activebitmap و disabledbitmap است.
برای آیتمهای
image:- image
تصویر Tk برای نمایش، که پیشتر با پروتکلهای تصویر ایجاد شده است.
- anchor
چگونگی قرارگیری تصویر نسبت به نقطهی آن.
هر دو گزینه دارای گونههای active... و disabled... (activeimage، disabledimage) هستند که در وضعیتهای فعال و غیرفعال استفاده میشوند.
برای آیتمهای
window:- window
ابزارکی که باید تعبیه شود؛ این ابزارک باید فرزند بوم یا فرزند یکی از نیاکان آن باشد و نباید یک پنجره سطح بالا باشد.
- anchor
چگونگی قرارگیری پنجره نسبت به نقطهی آن.
- عرض، ارتفاع
اندازهای که باید به پنجره اختصاص داده شود؛ اگر صفر باشد (پیشفرض)، اندازهی درخواستی به پنجره داده میشود.
آیتمهای
ovalوrectangleگزینههای مختص نوع ندارند؛ آنها فقط از گزینههای استاندارد آیتم استفاده میکنند.توجه
گزینهی angle در Tk 8.6 و گزینهی underline در Tk 9.0 برای آیتمهای
textافزوده شدند.
- coords(tagOrId)¶
- coords(tagOrId, coordList, /)
- coords(tagOrId, /, *coordList)
مختصات یک آیتم را بازیابی یا تغییر دهید. اگر تنها tagOrId داده شود، فهرستی از مختصات ممیز شناور آیتم مشخصشده با tagOrId برمیگرداند (اولین آیتم منطبق، اگر چندین آیتم منطبق وجود داشته باشد). اگر مختصات جدید داده شود، مختصات آن آیتم با آنها جایگزین میشود؛ مانند متدهای
create_*، میتوان مختصات را بهصورت اعداد جداگانه، بهصورت یک دنباله واحد، یا بهصورت جفتهای مختصات داد. مختصات برگرداندهشده همیشه بر حسب پیکسل هستند، صرفنظر از واحدهای استفادهشده برای مشخص کردن آنها؛ برای مستطیلها، بیضیها و کمانها، به ترتیب چپ، بالا، راست، پایین مرتب شدهاند.تغییر یافته در نسخهی 3.12: آرگومانها اکنون مسطح شدهاند: مختصات میتوانند بهصورت آرگومانهای جداگانه، بهصورت یک دنباله واحد، یا بهصورت جفتها گروهبندیشده داده شوند، مانند متدهای
create_*.
- move(tagOrId, xAmount, yAmount, /)¶
هر یک از آیتمهای مشخصشده با tagOrId را در فضای مختصات بوم (canvas) با افزودن xAmount به هر یک از مختصاتهای x و yAmount به هر یک از مختصاتهای y آن آیتم جابهجا میکند.
- moveto(tagOrId, x='', y='')¶
آیتمهای مشخصشده با tagOrId را بهگونهای جابهجا کنید که اولین جفت مختصات پایینترین آیتم منطبق (گوشهی بالا سمت چپ جعبهی محدودکننده) در موقعیت (x, y) قرار گیرد. *x یا y میتواند رشتهای خالی باشد، که در این صورت مختصات متناظر بدون تغییر میماند. همهی آیتمهای منطبق موقعیتهای خود را نسبت به یکدیگر حفظ میکنند.
اضافه شده در نسخهی 3.8.
- scale(tagOrId, xOrigin, yOrigin, xScale, yScale, /)¶
مقیاسدهی مجدد مختصات تمام آیتمهای دادهشده توسط tagOrId در فضای مختصات بوم. هر مختصات x بهگونهای تنظیم میشود که فاصلهی آن از xOrigin با ضریب xScale تغییر کند، و هر مختصات y بهگونهای که فاصلهی آن از yOrigin با ضریب yScale تغییر کند (ضریب
1.0مختصات را بدون تغییر باقی میگذارد).
- delete(*tagOrIds)¶
هر یک از آیتمهای دادهشده توسط آرگومانهای tagOrIds را حذف میکند.
- dchars(tagOrId, first, /)¶
- dchars(tagOrId, first, last, /)
از هر یک از آیتمهای دادهشده توسط tagOrId، نویسهها (برای آیتمهای متنی) یا مختصات (برای آیتمهای خط و چندضلعی) را در بازهی first تا last (شامل هر دو) حذف میکند؛ مقدار پیشفرض last برابر first است. آیتمهایی که از اندیسدهی پشتیبانی نمیکنند، این عملیات را نادیده میگیرند.
- insert(tagOrId, beforeThis, string, /)¶
string را در هر یک از آیتمهای مشخصشده با tagOrId، درست پیش از نویسه یا مختصاتی که اندیس آن beforeThis است، درج کنید. برای آیتمهای خط و چندضلعی، string باید دنبالهای معتبر از مختصات باشد.
- itemcget(tagOrId, option)¶
مقدار فعلی گزینه پیکربندی option را برای آیتم مشخصشده با tagOrId برمیگرداند (اگر با چندین آیتم مطابقت داشته باشد، پایینترین آیتم منطبق). این مانند
cget()است، اما برای یک آیتم منفرد اعمال میشود.
- itemconfigure(tagOrId, cnf=None, **kw)¶
گزینههای پیکربندی آیتمهای مشخصشده با tagOrId را بپرسید یا تغییر دهید. این متد همانند
configure()است، با این تفاوت که بهجای کل بوم، به آیتمهای جداگانه اعمال میشود. بدون هیچ گزینهای، یک دیکشنری برمیگرداند که گزینههای جاری اولین آیتم منطبق را توصیف میکند؛ در غیر این صورت، گزینههای دادهشده را روی همه آیتمهای منطبق تنظیم میکند. گزینههای مجاز، گزینههایی هستند که متدcreate_*متناظر آنها را میپذیرد.itemconfig()نام مستعاری برایitemconfigure()است.
- type(tagOrId)¶
نوع آیتم دادهشده توسط tagOrId را برمیگرداند (اولین آیتم منطبق در صورتی که با چندین آیتم مطابقت داشته باشد)، مانند
'rectangle'یا'text'، یا اگر tagOrId با هیچ آیتمی مطابقت نداشته باشدNoneرا برمیگرداند.
- gettags(tagOrId, /)¶
یک تاپل از برچسبهای مرتبط با آیتم مشخصشده توسط tagOrId برمیگرداند (در صورت تطابق با چندین آیتم، اولین آیتم منطبق در ترتیب فهرست نمایش). اگر هیچ آیتمی منطبق نباشد یا آیتم برچسبی نداشته باشد، یک تاپل خالی برمیگرداند.
- dtag(tagOrId, /)¶
- dtag(tagOrId, tagToDelete, /)
برچسب tagToDelete (که بهطور پیشفرض tagOrId است) را از هر یک از آیتمهای دادهشده توسط tagOrId حذف میکند. آیتمهایی که آن برچسب را ندارند، بدون تغییر میمانند.
- addtag(newtag, searchSpec, /, *args)¶
برچسب newtag را به هر آیتمی که توسط مشخصه جستجوی searchSpec (و هر args بیشتر) انتخابشده است، اضافه میکند. searchSpec یکی از
'above'،'all'،'below'،'closest'،'enclosed'،'overlapping'یا'withtag'است؛ متدهایaddtag_*زیر، متدهای پوششی مناسبی هستند که هر یک از این قالبها را فراهم میکنند.
- addtag_above(newtag, tagOrId)¶
برچسب newtag را به آیتم بلافاصله بالای (پس از) tagOrId در فهرست نمایش اضافه کنید.
- addtag_all(newtag)¶
برچسب newtag را به تمام آیتمهای بوم اضافه کنید.
- addtag_below(newtag, tagOrId)¶
برچسب newtag را به آیتم درست پایین (قبل از) tagOrId در فهرست نمایش اضافه کنید.
- addtag_closest(newtag, x, y, halo=None, start=None)¶
برچسب newtag را به نزدیکترین آیتم به نقطهی (x، y) اضافه میکند. اگر halo داده شده باشد، هر آیتمی که در آن فاصله از نقطه قرار داشته باشد، همپوشان با آن در نظر گرفته میشود. اگر start داده شده باشد (یک برچسب یا شناسه)، بالاترین آیتم نزدیک که پایینتر از start در فهرست نمایش قرار دارد انتخاب میشود؛ این قابلیت میتواند برای پیمایش همهی نزدیکترین آیتمها استفاده شود.
- addtag_enclosed(newtag, x1, y1, x2, y2)¶
برچسب newtag را به هر آیتمی که بهطور کامل درون مستطیل (x1، y1، x2، y2) محصور شده است، اضافه کنید، که در آن x1 <= x2 و y1 <= y2 است.
- addtag_overlapping(newtag, x1, y1, x2, y2)¶
برچسب newtag را به هر آیتمی که با مستطیل (x1, y1, x2, y2) همپوشانی دارد یا درون آن محصور شده است، اضافه کنید، که در آن x1 <= x2 و y1 <= y2 است.
- addtag_withtag(newtag, tagOrId)¶
برچسب newtag را به هر آیتم دادهشده توسط tagOrId اضافه کنید.
- find(searchSpec, /, *args)¶
تاپلی از شناسههای همه آیتمهای انتخابشده توسط مشخصه جستجوی searchSpec (و هر آرگومان بعدی در args) را برمیگرداند، به ترتیب پشتهبندی و با پایینترین آیتم در ابتدا. مشخصه جستجو میتواند هر یک از قالبهای پذیرفتهشده توسط
addtag()را داشته باشد. متدهایfind_*زیر، متدهای پوششی آسانتری حول آن هستند.
- find_above(tagOrId)¶
یک تاپل شامل شناسهی آیتم درست بالای tagOrId در فهرست نمایش را برمیگرداند.
- find_all()¶
یک تاپل از شناسههای تمام آیتمهای موجود در بوم را به ترتیب پشتهبندی برمیگرداند.
- find_below(tagOrId)¶
یک تاپل شامل شناسهی آیتمی که درست زیر tagOrId در فهرست نمایش قرار دارد برمیگرداند.
- find_closest(x, y, halo=None, start=None)¶
یک تاپل شامل شناسهی نزدیکترین آیتم به نقطهی (x، y) برمیگرداند. halo و start مانند
addtag_closest()تفسیر میشوند.
- find_enclosed(x1, y1, x2, y2)¶
یک تاپل از شناسههای تمام آیتمهایی که کاملاً درون مستطیل (x1, y1, x2, y2) محصور شدهاند، برمیگرداند.
- find_overlapping(x1, y1, x2, y2)¶
یک تاپل از شناسههای تمام آیتمهایی که با مستطیل (x1, y1, x2, y2) همپوشانی دارند یا درون آن محصور شدهاند را برمیگرداند.
- find_withtag(tagOrId)¶
یک تاپل از شناسههای تمام آیتمهای مشخصشده با tagOrId را برمیگرداند.
- tag_raise(tagOrId, aboveThis=None, /)¶
تمام آیتمهای مشخصشده توسط tagOrId را به موقعیت جدیدی در فهرست نمایش، دقیقاً بالاتر از آیتم مشخصشده توسط aboveThis، یا به بالای فهرست نمایش اگر aboveThis ذکر نشود، منتقل میکند. هنگامی که چند آیتم منتقل میشوند، ترتیب نسبی آنها حفظ میشود. این کار تأثیری بر آیتمهای پنجرهی تعبیهشده ندارد؛ در عوض، ترتیب پشتهای آنها توسط
Misc.tkraise()وMisc.lower()کنترل میشود.lift()وtkraise()نامهای مستعارtag_raise()هستند.
- tag_lower(tagOrId, belowThis=None, /)¶
تمام آیتمهای مشخصشده با tagOrId را به موقعیت جدیدی در فهرست نمایش، درست زیر آیتم مشخصشده با belowThis، یا در صورت حذف belowThis به انتهای فهرست نمایش منتقل میکند. هنگامی که چندین آیتم جابهجا میشوند، ترتیب نسبی آنها حفظ میشود. این کار تأثیری بر آیتمهای پنجرهی تعبیهشده ندارد.
lower()نام مستعاری برایtag_lower()است.توجه
در یک
Canvas،tkraise()/lift()وlower()آیتمهای بوم را دوباره در پشته میچینند و متدهای بهارثبردهشدهیMisc.tkraise()/Misc.lift()وMisc.lower()را میپوشانند؛ متدهایی که خود ابزارک را دوباره در پشته میچینند و بنابراین در دسترس نیستند.
- tag_bind(tagOrId, sequence=None, func=None, add=None)¶
کالبک func را برای تمام آیتمهای مشخصشده با tagOrId به دنباله رویداد sequence متصل میکند، بهگونهای که هرگاه آن رویداد برای یکی از آیتمها رخ دهد، func فراخوانی شود. این مانند
Widget.bindاست، اما روی آیتمهای بوم بهجای ابزارکهای کامل عمل میکند؛ فقط رویدادهای ماوس، صفحهکلید و مجازی را میتوان متصل کرد. رویدادهای ماوس به آیتم جاری و رویدادهای صفحهکلید به آیتم دارای فوکوس هدایت میشوند (بهfocus()مراجعه کنید). اگر add درست باشد، اتصال جدید به هرگونه اتصال موجود برای همان دنباله افزوده میشود، نه اینکه آنها را جایگزین کند. شناسه تابع متصلشده را برمیگرداند؛ میتوان این شناسه را بهtag_unbind()داد.
- tag_unbind(tagOrId, sequence, funcid=None)¶
اتصال رویداد sequence را برای همه آیتمهای مشخصشده با tagOrId حذف میکند. اگر funcid داده شود، فقط همان کالبک (که توسط
tag_bind()برگرداندهشده است) لغو اتصال میشود و از ثبت خارج میگردد.تغییر یافته در نسخهی 3.13: اگر funcid داده شده باشد، فقط همان کالبک از اتصال خارج میشود.
- bbox(tagOrId, /, *tagOrIds)¶
یک ۴-تایی
(x1, y1, x2, y2)برگردانید که یک جعبهی محدودکننده (bounding box) تقریبی را بر حسب پیکسل ارائه میدهد، جعبهای که همه آیتمهای مشخصشده با tagOrId و هر tagOrIds دیگری را در بر میگیرد. ممکن است نتیجه، جعبهی محدودکننده واقعی را به اندازه چند پیکسل بیشبرآورد کند. اگر هیچ آیتمی مطابقت نداشته باشد یا آیتمهای منطبق چیزی برای نمایش نداشته باشند،Noneرا برگردانید.این،
Misc.bbox()موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه ازgrid_bbox()استفاده کنید.
- canvasx(screenx, gridspacing=None)¶
با داشتن مختصات x پنجره screenx، مختصات x بوم نمایشدادهشده در آن موقعیت را برمیگرداند. اگر gridspacing داده شده باشد، نتیجه به نزدیکترین مضرب از واحدهای gridspacing گرد میشود.
- canvasy(screeny, gridspacing=None)¶
با فرض مختصات y پنجره screeny، مختصات y بوم نمایشدادهشده در آن موقعیت را برمیگرداند. اگر gridspacing داده شود، نتیجه به نزدیکترین مضرب از واحدهای gridspacing گرد میشود.
- focus()¶
- focus(tagOrId, /)
با tagOrId، فوکوس صفحهکلید برای بوم را روی اولین آیتم مشخصشده توسط tagOrId که از مکاننمای درج پشتیبانی میکند، تنظیم میکند؛ اگر چنین آیتمی وجود نداشته باشد، فوکوس بدون تغییر باقی میماند. اگر tagOrId یک رشته خالی باشد، فوکوس را بازنشانی میکند تا هیچ آیتمی آن را نداشته باشد. بدون آرگومان، شناسه آیتمی را که در حال حاضر فوکوس را دارد برمیگرداند، یا اگر هیچ آیتمی آن را نداشته باشد، یک رشته خالی برمیگرداند. یک آیتم تنها زمانی مکاننمای درج را نمایش میدهد که هم خود آن آیتم دارای فوکوس باشد و هم بوم آن فوکوس ورودی را داشته باشد.
این،
Misc.focus()موروثی را میپوشاند؛ برای فوکوس کردن خود ابزارک ازfocus_set()استفاده کنید.
- icursor(tagOrId, index, /)¶
مکاننمای درج آیتمهای مشخصشده با tagOrId را دقیقاً پیش از نویسهی مشخصشده با index قرار دهید. آیتمهایی که از مکاننمای درج پشتیبانی نمیکنند، تحت تأثیر قرار نمیگیرند. مکاننما تنها زمانی نمایش داده میشود که آیتم فوکوس داشته باشد، اما میتوان موقعیت آن را در هر زمانی تنظیم کرد.
- index(tagOrId, index, /)¶
اندیس عددی در tagOrId را که متناظر با index است، بهصورت یک عدد صحیح برمیگرداند؛ index توصیفی متنی از یک موقعیت است (برای آیتمهای متنی، اندیسی در نویسهها، و برای آیتمهای خط و چندضلعی، اندیسی در مختصات). اگر tagOrId با چند آیتم مطابقت داشته باشد، از نخستین آیتمی که از اندیسدهی پشتیبانی کند استفاده میشود.
- select_adjust(tagOrId, index)¶
انتهای انتخاب در tagOrId را که به index نزدیکتر است، طوری تنظیم میکند که در index قرار گیرد، و انتهای دیگر را نقطهی لنگر برای فراخوانیهای بعدی
select_to()قرار میدهد. اگر انتخاب در حال حاضر در tagOrId نباشد، مانندselect_to()رفتار میکند.
- select_clear()¶
اگر انتخاب در این بوم است، آن را پاک کنید؛ در غیر این صورت، هیچ کاری انجام ندهید.
- select_from(tagOrId, index)¶
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index در آیتم مشخصشده با tagOrId تنظیم کنید. این کار خود انتخاب را تغییر نمیدهد؛ بلکه پایان ثابتی را برای فراخوانیهای بعدی
select_to()تعیین میکند.
- select_item()¶
شناسه آیتمی که انتخاب را در بر دارد برگردانید، یا اگر انتخاب در این بوم نباشد
Noneبرگردانید. برخلافfind()و متدهایfind_*، این متد شناسه را بهجای عدد صحیح بهصورت رشته برمیگرداند.
- select_to(tagOrId, index)¶
انتخاب را روی نویسههای tagOrId بین نقطهی لنگر انتخاب و index، شامل خود index، تنظیم میکند. نقطهی لنگر همان نقطهای است که توسط آخرین فراخوانی
select_adjust()یاselect_from()تنظیم شده است.
- scan_mark(x, y)¶
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی
scan_dragto()ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
- scan_dragto(x, y, gain=10)¶
بوم را به اندازهی gain برابرِ اختلاف میان x، y و مختصات ارسالشده به آخرین فراخوانی
scan_mark()پیمایش کنید. این معمولاً به رویدادهای حرکت ماوس در ابزارک متصل میشود و جلوهی کشیدن بوم با سرعت بالا در پنجرهی خود را ایجاد میکند.
- postscript(cnf={}, **kw)¶
یک بازنمایی PostScript (Encapsulated PostScript، نسخهی 3.0) از بخشی یا کل بوم تولید میکند. اگر گزینهی file یا channel داده شود، PostScript در آنجا نوشته میشود و یک رشتهی خالی برگردانده میشود؛ در غیر این صورت بهصورت یک رشته برگردانده میشود. بهطور پیشفرض، فقط ناحیهای که در حال حاضر در پنجره قابلمشاهده است، تولید میشود؛ بنابراین معمولاً لازم است یا ابتدا
update()فراخوانی شود یا از گزینههای width و height استفاده شود. گزینههای پشتیبانیشده شامل colormap، colormode، file، fontmap، height، pageanchor، pageheight، pagewidth، pagex، pagey، rotate، width، x و y میشوند.
- class tkinter.Checkbutton(master=None, cnf={}, **kw)¶
ابزارک
Checkbuttonیک رشته متنی، بیتمپ یا تصویر را بههمراه یک مکاننما مربعی نمایش میدهد و هنگام فشرده شدن، باعث تغییر وضعیت یک انتخاب بولی میشود. این ابزارک تمام رفتار یک دکمه ساده را دارد و علاوه بر این، قابل انتخاب است: هنگام انتخاب، مکاننما با یک علامت تیک ترسیم میشود و متغیر مرتبط بهonvalueتنظیم میشود، و هنگام لغو انتخاب، مکاننما خالی ترسیم میشود و متغیر بهoffvalueتنظیم میشود. این ابزارک ازWidgetارث میبرد. علاوه بر گزینههای استاندارد ابزارک، ابزارک Checkbutton گزینههایی را میپذیرد که در صفحه راهنمایcheckbuttonدر Tk مستند شدهاند، مانند variable، onvalue، offvalue و command.- invoke()¶
دقیقاً همان کاری را انجام میدهد که اگر کاربر دکمهی انتخابی (checkbutton) را با ماوس فشار میداد، رخ میداد: وضعیت انتخاب دکمه را معکوس میکند و فرمان مرتبط را، در صورت وجود، فراخوانی میکند. نتیجهی فرمان را برمیگرداند، یا اگر فرمانی به دکمهی انتخابی مرتبط نباشد، یک رشتهی خالی برمیگرداند. اگر وضعیت دکمهی انتخابی
disabledباشد، این عمل نادیده گرفته میشود.
- select()¶
دکمهی انتخابی را انتخاب کنید و متغیر مرتبط با آن را روی
onvalueآن تنظیم کنید.
- deselect()¶
دکمهی انتخابی را از حالت انتخاب خارج کنید و متغیر مرتبط را روی
offvalueآن تنظیم کنید.
- toggle()¶
وضعیت انتخاب دکمه را تغییر میدهد، آن را دوباره نمایش میدهد و متغیر مرتبط با آن را تغییر میدهد تا وضعیت جدید را منعکس کند.
- flash()¶
دکمهی انتخابی را با نمایش دوبارهی آن چندین بار و جابهجایی متناوب بین رنگهای فعال و عادی، بهصورت چشمک درآورید. در پایان چشمک، دکمهی انتخابی در همان وضعیت عادی یا فعالی که در زمان فراخوانی متد داشت باقی میماند. اگر وضعیت دکمهی انتخابی
disabledباشد، این عمل نادیده گرفته میشود.
- class tkinter.Entry(master=None, cnf={}, **kw)¶
یک ابزارک
Entryیک خط از متن را نمایش میدهد و به کاربر اجازه میدهد آن را ویرایش کند. این ابزارک ازWidgetوXViewارث میبرد؛ از آنجا که ورودیها میتوانند رشتههایی را در خود نگه دارند که برای جا شدن در پنجره بیش از حد طولانی هستند، از پیمایش افقی از طریقxview()پشتیبانی میکنند.علاوه بر گزینههای استاندارد ابزارک، یک ورودی گزینههای مستندشده در صفحهی راهنمای
entryدر Tk را میپذیرد. گزینههای قابلتوجه عبارتاند از textvariable (نام متغیری که با محتوای ورودی همگام نگه داشته میشود)، show (در صورت تنظیم، هر نویسه بهجای مقدار واقعیاش بهصورت نویسهی دادهشده نمایش داده میشود؛ برای ورود گذرواژه مفید است)، validate و validatecommand (که با هم به یک کالبک امکان میدهند ویرایشها را بپذیرد یا رد کند)، و state (یکی از'normal'،'disabled'یا'readonly').بسیاری از متدهای زیر یک آرگومان اندیس میگیرند که نویسهای را در رشتهی ورودی انتخاب میکند. همانطور که در صفحهی راهنمای
entryدر Tk توضیح داده شده است، اندیس میتواند عددی باشد (با شمارش از ۰)،'insert'(نویسهی درست پس از مکاننمای درج)،'end'(درست پس از آخرین نویسه)،'anchor'(نقطهی لنگر انتخاب)،'sel.first'و'sel.last'(دو سر انتخاب)، یا@x(نویسهای که پیکسلی با مختصات x برابر x در پنجره را میپوشاند). اندیسهای خارج از محدوده به نزدیکترین مقدار مجاز گرد میشوند.- delete(first, last=None)¶
نویسهها را از اندیس first تا پیش از اندیس last حذف میکند. اگر last ذکر نشود، تنها یک نویسه در اندیس first حذف میشود.
- get()¶
رشتهی فعلی ورودی را برمیگرداند.
- insert(index, string)¶
string را درست پیش از نویسهای که با index مشخصشده است درج کنید.
- icursor(index)¶
ترتیبی دهید که مکاننمای درج درست پیش از نویسهی مشخصشده توسط index نمایش داده شود.
- index(index)¶
اندیس عددی متناظر با index را برمیگرداند.
- selection_adjust(index)¶
انتهای انتخاب را که به نویسهی مشخصشده با index نزدیکتر است پیدا کنید و آن انتها را طوری تنظیم کنید که در index قرار گیرد (شامل آن، اما بدون عبور از آن)؛ انتهای دیگر به نقطهی لنگر برای فراخوانیهای آیندهی
selection_to()تبدیل میشود. اگر انتخابی در ورودی وجود نداشته باشد، انتخاب جدیدی بین index و آخرین نقطهی لنگر، بهصورت شامل، ایجاد میشود.select_adjust()نام مستعارselection_adjust()است.
- selection_clear()¶
اگر انتخاب در حال حاضر در این ابزارک قرار دارد، آن را پاک میکند. اگر انتخاب در این ابزارک نباشد، این متد هیچ تأثیری ندارد.
select_clear()نام مستعاری ازselection_clear()است.توجه
این، متد بهارثرسیدهی
Misc.selection_clear()را میپوشاند، که انتخاب X را پاک میکند؛ آن متد روی یکEntryدر دسترس نیست.
- selection_from(index)¶
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index، بدون تغییر انتخاب، قرار میدهد.
select_from()نام مستعاری برایselection_from()است.
- selection_present()¶
اگر نویسههایی در ورودی انتخاب شده باشند،
Trueرا برمیگرداند، در غیر این صورتFalseرا برمیگرداند.select_present()نام مستعاری برایselection_present()است.
- selection_range(start, end)¶
انتخاب را طوری تنظیم کنید که شامل نویسههایی باشد که از نویسهی با اندیس start شروع میشود و به نویسهی درست پیش از end ختم میشود. اگر end به همان نویسهی start یا به نویسهای پیشتر از آن اشاره کند، انتخاب پاک میشود.
select_range()نام مستعاری برایselection_range()است.
- selection_to(index)¶
انتخاب بین نقطهی لنگر و index را تنظیم میکند: اگر index پیش از نقطهی لنگر باشد، انتخاب از index تا نقطهی لنگر ادامه دارد، بدون اینکه نقطهی لنگر را شامل شود؛ اگر index پس از آن باشد، از نقطهی لنگر تا index ادامه دارد، بدون اینکه index را شامل شود؛ اگر این دو بر هم منطبق باشند، اتفاقی رخ نمیدهد. نقطهی لنگر همان نقطهای است که آخرین فراخوانی
selection_from()یاselection_adjust()آن را تنظیم کرده است. اگر انتخابی در ورودی وجود نداشته باشد، انتخاب جدیدی با استفاده از آخرین نقطهی لنگر ایجاد میشود.select_to()نام مستعاری ازselection_to()است.
- scan_mark(x)¶
x و نمای فعلی را در پنجرهی ورودی ثبت میکند، برای استفاده در فراخوانیهای بعدی
scan_dragto(). معمولاً با فشار دکمهی ماوس در ابزارک مرتبط است.
- scan_dragto(x)¶
تفاوت میان x و x دادهشده به آخرین فراخوانی
scan_mark()را محاسبه میکند و نما را به میزان ۱۰ برابر آن تفاوت به چپ یا راست تنظیم میکند. معمولاً با رویدادهای حرکت ماوس مرتبط است تا اثر کشیدن ورودی با سرعت بالا در پنجره را ایجاد کند.
- class tkinter.Frame(master=None, cnf={}, **kw)¶
ابزارک
Frameیک ظرف ساده است. هدف اصلی آن این است که بهعنوان فاصلهگذار یا ظرفی برای چیدمانهای پیچیده پنجره عمل کند؛ تنها ویژگیهای آن، پسزمینه و یک حاشیه سهبعدی اختیاری برای برجسته یا فرورفته نشان دادن قاب است. ازWidgetارث میبرد. برای فهرست کامل گزینهها به صفحه راهنمایframeدر Tk مراجعه کنید.
- class tkinter.Label(master=None, cnf={}, **kw)¶
ابزارک
Labelیک رشته متنی، بیتمپ یا تصویر را بهصورت غیرتعاملی نمایش میدهد. متن نمایشدادهشده با گزینه text تنظیم میشود یا از طریق textvariable به یک متغیر پیوند داده میشود، و میتوان یک تصویر را با گزینه image نمایش داد. تمام متن باید با یک قلم واحد باشد اما میتواند چند خط را اشغال کند، و میتوان یک نویسه را با گزینه underline زیرخطدار کرد. ازWidgetارث میبرد. برای فهرست کامل گزینهها، به صفحهی راهنمایlabelدر Tk مراجعه کنید.
- class tkinter.LabelFrame(master=None, cnf={}, **kw)¶
ابزارک
LabelFrameیک ظرف است که قابلیتهایFrameبهعلاوهی توانایی نمایش یک برچسب را دارد. متن برچسب با گزینهی text تنظیم میشود و موقعیت آن با labelanchor تعیین میشود، یا میتوان از یک ابزارک دلخواه بهعنوان برچسب استفاده کرد، با مشخص کردن آن بهعنوان گزینهی labelwidget. ازWidgetارث میبرد. برای فهرست کامل گزینهها، به صفحهی راهنمایlabelframeدر Tk مراجعه کنید.
- class tkinter.Listbox(master=None, cnf={}, **kw)¶
ابزارک
Listboxفهرستی از آیتمهای متنی تکسطری، یکی در هر خط، نمایش میدهد که کاربر میتواند یک یا چند آیتم از آنها را انتخاب کند. نحوهی رفتار انتخاب توسط گزینهی selectmode تعیین میشود، که یکی ازbrowse(پیشفرض؛ حداکثر یک آیتم، که میتوان آن را با ماوس کشید)،single(حداکثر یک آیتم)،multiple(هر تعداد آیتم، که هرکدام بهصورت جداگانه تغییر وضعیت مییابند)، یاextended(هر تعداد آیتم، شامل بازههای ناپیوسته، که با کلیک و کشیدن انتخاب میشوند) است. این ابزارک ازWidget،XViewوYViewارث میبرد، بنابراین میتوان نما را بهصورت افقی و عمودی باxview()وyview()پیمایش کرد. برای فهرست کامل گزینهها، به صفحهی راهنمایlistboxدر Tk مراجعه کنید.بسیاری از متدها یک آرگومان index میگیرند که یک آیتم خاص را مشخص میکند. همانطور که در صفحهی راهنمای
listboxدر Tk توضیح داده شده است، index میتواند یک اندیس عددی باشد (با شمارش از ۰ در بالا)،'active'(آیتم دارای مکاننمای موقعیت، که باactivate()تنظیم میشود)،'anchor'(لنگر انتخاب، که باselection_anchor()تنظیم میشود)،'end'(آخرین آیتم، یا برایindex()وinsert()موقعیت درست پس از آن)، یا@x,y(آیتمی که مختصات پیکسلی x، y را در پنجرهی listbox پوشش میدهد). آرگومانهایی به نامهای first و last نیز اندیسهایی با همان قالبها هستند.- insert(index, *elements)¶
elements دادهشده را بهعنوان آیتمهای جدید، درست پیش از آیتم مشخصشده با index درج کنید. اگر index برابر
'end'باشد، آیتمهای جدید به انتهای فهرست افزوده میشوند.
- delete(first, last=None)¶
آیتمهای بازهی first تا last، شامل هر دو، را حذف کنید. اگر last ذکر نشود، مقدار پیشفرض آن first است، بنابراین یک آیتم واحد حذف میشود.
- get(first, last=None)¶
اگر last حذف شود، محتوای آیتم مشخصشده با first را برمیگرداند، یا اگر first به آیتمی ناموجود اشاره کند، یک رشته خالی را برمیگرداند. اگر last داده شده باشد، یک تاپل از همهی آیتمهای بازهی first تا last را بهصورت شامل هر دو برمیگرداند.
- size()¶
تعداد کل آیتمهای موجود در جعبهفهرست را برمیگرداند.
این،
Misc.size()موروثی را میپوشاند؛ برای اندازهی شبکه ازgrid_size()استفاده کنید.
- index(index)¶
مقدار اندیس متناظر با index را بهصورت عدد صحیح برمیگرداند، یا اگر index خارج از محدوده باشد،
Noneرا برمیگرداند. اگر index برابر'end'باشد، نتیجه تعداد آیتمهای جعبهفهرست (listbox) است (نه اندیس آخرین آیتم).
- bbox(index)¶
یک تاپل
(x, y, width, height)را برمیگرداند که جعبهی محدودکنندهی متنِ آیتم مشخصشده با index را بر حسب پیکسل، نسبت به ابزارک، توصیف میکند. اگر هیچ بخشی از آن آیتم روی صفحهنمایش نمایان نباشد، یا اگر index به یک آیتم ناموجود اشاره کند،Noneرا برمیگرداند؛ اگر آیتم فقط تا حدی نمایان باشد، نتیجه همچنان ناحیهی کامل آیتم را، شامل بخشهایی که نمایان نیستند، میدهد.این،
Misc.bbox()موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه ازgrid_bbox()استفاده کنید.
- nearest(y)¶
با داشتن یک مختصات y درون پنجرهی listbox، اندیس نزدیکترین آیتم قابل مشاهده به آن مختصات y را برمیگرداند.
- see(index)¶
نما را طوری تنظیم کنید که آیتم مشخصشده با index قابل مشاهده باشد. اگر آیتم از قبل قابل مشاهده باشد، این متد هیچ تأثیری ندارد؛ اگر به لبهای از پنجره نزدیک باشد، جعبهفهرست (listbox) فقط به اندازهای پیمایش میشود تا آن را در همان لبه نمایان کند، در غیر این صورت جعبهفهرست پیمایش میشود تا آیتم را در مرکز قرار دهد.
- activate(index)¶
آیتم فعال را به آیتمی که index آن را مشخص میکند، تنظیم کنید. اگر index خارج از بازه آیتمها باشد، در عوض نزدیکترین آیتم فعال میشود. آیتم فعال، زمانی که ابزارک فوکوس ورودی دارد، مطابق گزینه activestyle ترسیم میشود و میتوان اندیس آن را با اندیس
'active'بازیابی کرد.
- curselection()¶
یک تاپل شامل اندیسهای عددی تمام آیتمهایی که در حال حاضر انتخاب شدهاند برمیگرداند، یا اگر هیچ آیتمی انتخاب نشده باشد، یک تاپل خالی برمیگرداند.
- selection_anchor(index)¶
لنگر انتخاب را روی آیتم مشخصشده توسط index تنظیم کنید. اگر index به آیتمی اشاره کند که وجود ندارد، از نزدیکترین آیتم استفاده میشود. لنگر انتخاب، انتهای انتخابی است که هنگام کشیدن ماوس برای ایجاد یک انتخاب ثابت میماند، و بعداً میتوان با اندیس
'anchor'به آن ارجاع داد.select_anchor()یک نام مستعار برایselection_anchor()است.
- selection_clear(first, last=None)¶
انتخاب هر یک از آیتمهای انتخابشده در بازهی first تا last (شامل هر دو) را لغو میکند. وضعیت انتخاب آیتمهای خارج از این بازه تغییر نمیکند.
select_clear()نام مستعاری ازselection_clear()است.توجه
این، متد موروثی
Misc.selection_clear()را میپوشاند، که گزینش X را پاک میکند؛ آن متد درListboxدر دسترس نیست.
- selection_includes(index)¶
اگر آیتم مشخصشده با index در حال حاضر انتخابشده باشد،
Trueبرمیگرداند، در غیر این صورتFalse.select_includes()نام مستعاری ازselection_includes()است.
- selection_set(first, last=None)¶
تمام آیتمهای بازهی first تا last را بهصورت شامل ابتدا و انتها انتخاب میکند، بدون آنکه بر وضعیت انتخاب آیتمهای خارج از آن بازه تأثیر بگذارد.
select_set()نام مستعاری ازselection_set()است.
- itemcget(index, option)¶
مقدار فعلی گزینه پیکربندی option را برای آیتم دادهشده توسط index برمیگرداند.
- itemconfigure(index, cnf=None, **kw)¶
گزینههای پیکربندی آیتم مشخصشده با index را بازیابی یا تغییر دهید. این مشابه
configure()است، با این تفاوت که بهجای کل جعبهفهرست، بر یک آیتم منفرد اعمال میشود. بدون هیچ گزینهای، یک دیکشنری که گزینههای فعلی آیتم را توصیف میکند برمیگرداند؛ در غیر این صورت، گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده برای آیتم عبارتاند از background، foreground، selectbackground و selectforeground.itemconfig()یک نام مستعار برایitemconfigure()است.
- scan_mark(x, y)¶
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی
scan_dragto()ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
- scan_dragto(x, y)¶
جعبهفهرست را به اندازهی ۱۰ برابر اختلاف بین x، y و مختصات ارسالشده به آخرین فراخوانی
scan_mark()پیمایش میکند. این معمولاً به رویدادهای حرکت ماوس در ابزارک متصل میشود و اثر کشیدهشدن فهرست با سرعت بالا درون پنجره را ایجاد میکند.
- class tkinter.Menu(master=None, cnf={}, **kw)¶
ابزارک
Menuستونی از آیتمها را نمایش میدهد که هر کدام میتوانند یک فرمان، یک دکمه علامتزنی، یک دکمه رادیویی، یک آیتم آبشاری (که یک زیرمنوی مرتبط را نمایش میدهد) یا یک جداکننده باشند. منوها بهعنوان نوار منوی یک پنجره سطح بالا، بهعنوان منوهای کشویی که از یک آیتم آبشاری یا دکمه منو نمایش داده میشوند، و بهعنوان منوهای بالاپر استفاده میشوند. ازWidgetارث میبرد.بسیاری از متدهای مربوط به ورودیها یک آرگومان اندیس دریافت میکنند که مشخص میکند روی کدام ورودی عمل شود. همانطور که در صفحه راهنمای
menuدر Tk توضیح داده شده است، اندیس میتواند یک اندیس عددی (با شمارش از ۰ از بالا)،'active'(ورودی فعال فعلی)،'end'یا'last'(پایینترین ورودی)،'none'(بدون هیچ ورودیای، که در Tcl بهصورت{}نوشته میشود)،@y(ورودیای که پیکسل با مختصات y برابر y در پنجره منو را میپوشاند)، یا الگویی که با برچسبهای ورودیها از بالا به پایین تطبیق داده میشود، باشد.- add(itemType, cnf={}, **kw)¶
یک آیتم جدید به انتهای منو اضافه میکند. itemType یکی از
'command'،'cascade'،'checkbutton'،'radiobutton'یا'separator'است و نوع آیتم جدید را تعیین میکند؛ گزینههای باقیمانده آن را پیکربندی میکنند. متدهای کمکیadd_command()،add_cascade()،add_checkbutton()،add_radiobutton()وadd_separator()این متد را با itemType متناظر فراخوانی میکنند.این مدخل با گزینههای زیر پیکربندی میشود، اگرچه هر گزینهای برای هر نوع مدخل صدق نمیکند (یک جداکننده هیچکدام از آنها را نمیپذیرد):
- label
متن برای نمایش در ورودی.
- command
تابعی که هنگام فراخوانی آیتم فراخوانی میشود (آیتمهای command، checkbutton و radiobutton).
- accelerator
رشتهای که در سمت راست آیتم نمایش داده میشود تا کلید شتابدهنده (accelerator keystroke) را نشان دهد؛ این رشته بهتنهایی اتصال را ایجاد نمیکند.
- underline
اندیس نویسهای در برچسب که برای پیمایش با صفحهکلید زیرخط میشود.
- state
یکی از
'normal'،'active'یا'disabled'.- image
تصویری برای نمایش بهجای برچسب متنی، یا همراه با آن.
- compound
محل نمایش تصویر نسبت به متن:
'none'(پیشفرض)،'text'،'image'،'top'،'bottom'،'left'یا'right'.- bitmap
یک بیتمپ برای نمایش بهجای برچسب متنی.
- font
قلمی که برای متن استفاده میشود.
- پسزمینه، پیشزمینه
رنگهای پسزمینه و پیشزمینهی ورودی در حالت عادی خود (در macOS نادیده گرفته میشود).
- activebackground, activeforeground
رنگهای پسزمینه و پیشزمینهای که هنگام فعال بودن ورودی استفاده میشوند (در macOS نادیده گرفته میشوند).
- columnbreak
اگر درست باشد، ورودی بهجای قرار گرفتن زیر ورودی قبلی، ستون جدیدی را آغاز میکند.
- hidemargin
اگر مقدار true باشد، حاشیه استاندارد اطراف ورودی حذف میشود که زمانی مفید است که یک منو بهعنوان پالت استفاده شود.
- menu
زیرمنویی که توسط یک آیتم آبشاری نمایش داده میشود؛ باید فرزند این منو باشد.
- variable
متغیر مرتبط با ورودی دکمهی علامتی یا دکمهی رادیویی.
- onvalue, offvalue
مقادیری که در variable ذخیره میشوند، هنگامی که یک آیتم دکمهی انتخابی انتخاب یا پاک میشود.
- value
مقدار ذخیرهشده در variable هنگامی که یک آیتم دکمه رادیویی انتخاب میشود.
- indicatoron
اینکه آیا مکاننما یک آیتم دکمهی انتخابی یا دکمهی رادیویی (radiobutton) نمایش داده شود یا خیر.
- selectcolor
رنگ مکاننما آیتم دکمهی انتخابی یا دکمهی رادیویی هنگامی که انتخابشده است.
- selectimage
تصویری که هنگام انتخاب یک آیتم checkbutton یا radiobutton و در صورتی که image نیز داده شده باشد، نمایش داده میشود.
- add_cascade(cnf={}, **kw)¶
یک آیتم آبشاری جدید به انتهای منو اضافه کنید. یک آیتم آبشاری دارای یک زیرمنوی مرتبط است که با گزینه menu آن مشخص میشود و باید فرزند این منو باشد؛ نمایش آیتم، زیرمنو را در کنار آن نمایش میدهد.
- add_checkbutton(cnf={}, **kw)¶
یک آیتم دکمهی انتخابی جدید به انتهای منو اضافه کنید. هنگام فراخوانی، یک آیتم دکمهی انتخابی بین onvalue و offvalue خود جابهجا میشود، نتیجه را در variable مرتبط با خود ذخیره میکند و مکاننمای نمایش میدهد که نشان میدهد آیا انتخاب شده است یا خیر.
- add_command(cnf={}, **kw)¶
یک ورودی فرمان جدید به انتهای منو اضافه کنید. یک ورودی فرمان بسیار شبیه به یک دکمه رفتار میکند: هنگامی که فراخوانی میشود، کالبک دادهشده توسط گزینه command آن فراخوانی میشود.
- add_radiobutton(cnf={}, **kw)¶
یک آیتم دکمه رادیویی جدید به انتهای فهرست اضافه کنید. آیتمهای دکمه رادیویی که variable یکسانی دارند، گروهی را تشکیل میدهند که در هر زمان فقط یکی از آنها قابل انتخاب است؛ انتخاب یک آیتم، value آن را در متغیر ذخیره میکند.
- add_separator(cnf={}, **kw)¶
یک جداکننده به پایین منو اضافه کنید. جداکننده بهصورت یک خط جداکنندهی افقی نمایش داده میشود و نمیتوان آن را فعال یا فراخوانی کرد.
- insert(index, itemType, cnf={}, **kw)¶
مشابه
add()، با این تفاوت که آیتم جدید درست پیش از آیتم مشخصشده با index درج میشود، نه اینکه به انتهای منو افزوده شود. itemType یکی از'command'،'cascade'،'checkbutton'،'radiobutton'یا'separator'است. متدهای کمکیinsert_command()،insert_cascade()،insert_checkbutton()،insert_radiobutton()وinsert_separator()این متد را با itemType متناظر فراخوانی میکنند.
- insert_cascade(index, cnf={}, **kw)¶
یک آیتم آبشاری (cascade) جدید پیش از آیتم مشخصشده با index درج کنید (به
add_cascade()مراجعه کنید).
- insert_checkbutton(index, cnf={}, **kw)¶
یک آیتم checkbutton جدید پیش از آیتم مشخصشده با index درج کنید (به
add_checkbutton()مراجعه کنید).
- insert_command(index, cnf={}, **kw)¶
یک آیتم فرمان جدید پیش از آیتم مشخصشده با index درج کنید (به
add_command()مراجعه کنید).
- insert_radiobutton(index, cnf={}, **kw)¶
یک آیتم دکمه رادیویی جدید را پیش از آیتم مشخصشده با index درج کنید (به
add_radiobutton()مراجعه کنید).
- insert_separator(index, cnf={}, **kw)¶
یک جداکننده پیش از آیتم مشخصشده با index درج کنید (به
add_separator()مراجعه کنید).
- delete(index1, index2=None)¶
تمام آیتمهای منو از index1 تا index2 (شامل هر دو) را حذف کنید. اگر index2 ذکر نشود، مقدار پیشفرض آن index1 خواهد بود، بنابراین یک آیتم واحد حذف میشود. تلاشها برای حذف یک آیتم جداشدنی (tear-off) نادیده گرفته میشوند؛ در عوض، با تغییر گزینهی tearoff آن را حذف کنید.
- entrycget(index, option)¶
مقدار فعلی گزینهی پیکربندی option را برای مدخل دادهشده با index برمیگرداند.
- entryconfigure(index, cnf=None, **kw)¶
گزینههای پیکربندی آیتم مشخصشده با index را بپرسید یا تغییر دهید. این همانند
configure()است، با این تفاوت که به یک آیتم منفرد اعمال میشود، نه به کل منو. بدون هیچ گزینهای، دیکشنریای را برمیگرداند که گزینههای فعلی آیتم را توصیف میکند؛ در غیر این صورت گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده همانهایی هستند کهadd()برای نوع آیتم میپذیرد.entryconfig()نام مستعاری ازentryconfigure()است.
- index(index)¶
اندیس عددی متناظر با index را برمیگرداند، یا اگر index هیچ آیتمی را انتخاب نکند،
Noneرا برمیگرداند.
- type(index)¶
نوع آیتم مشخصشده با index را برمیگرداند: یکی از
'command'،'cascade'،'checkbutton'،'radiobutton'،'separator'یا'tearoff'(برای آیتم tear-off).
- activate(index)¶
آیتم مشخصشده توسط index را بهعنوان آیتم فعال قرار میدهد، آن را با رنگهای فعالش دوباره نمایش میدهد و هر آیتم فعال پیشین را غیرفعال میکند. اگر index هیچ آیتمی را انتخاب نکند، یا آیتم انتخابشده غیرفعال باشد، منو بدون آیتم فعال باقی میماند.
- invoke(index)¶
عملکرد ورودی مشخصشده با index را فراخوانی کنید، گویی که روی آن کلیک شده است. اگر ورودی غیرفعال باشد، اتفاقی نمیافتد. اگر ورودی دارای یک command مرتبط با آن باشد، نتیجه آن command برگردانده میشود؛ در غیر این صورت نتیجه یک رشته خالی است.
- post(x, y)¶
منو را بر روی صفحه در مختصات x و y پنجرهی ریشه نمایش میدهد و در صورت لزوم آنها را تنظیم میکند تا کل منو نمایان باشد. اگر گزینهی postcommand مشخص شده باشد، پیش از نمایش منو ارزیابی میشود.
- tk_popup(x, y, entry='')¶
منو را بهصورت یک منوی بازشو در مختصات x و y پنجرهی ریشه نمایش دهید. اگر entry داده شود، منو طوری قرار میگیرد که این آیتم زیر اشارهگر نمایش داده شود.
- unpost()¶
منو را از حالت نمایش خارج میکند تا دیگر نمایش داده نشود، همچنین هر زیرمنوی آبشاری سطح پایینتری را که نمایش داده شده است میبندد. این کار روی Windows و macOS تأثیری ندارد، زیرا این سیستمعاملها خودشان مدیریت بستن منوها را بر عهده دارند.
- xposition(index)¶
مختصات x چپترین پیکسلِ آیتم دادهشده توسط index را در پنجرهی منو برمیگرداند.
اضافه شده در نسخهی 3.3.
- yposition(index)¶
مختصات y بالاترین پیکسلِ آیتم مشخصشده با index را در پنجرهی منو برمیگرداند.
- class tkinter.Menubutton(master=None, cnf={}, **kw)¶
ابزارک
Menubuttonیک رشته متنی، بیتمپ یا تصویر را نمایش میدهد و هنگامی که کاربر آن را فشار میدهد، یکMenuمرتبط را که با گزینه menu آن مشخص شده است، باز میکند. مانندLabelمیتواند text، textvariable یا image را نمایش دهد و گزینه direction کنترل میکند که منو نسبت به دکمه کجا ظاهر شود. ازWidgetارث میبرد. برای فهرست کامل گزینهها به صفحه راهنمایmenubuttonدر Tk مراجعه کنید.
- class tkinter.Message(master=None, cnf={}, **kw)¶
ابزارک
Messageیک رشته متنی غیرتعاملی را نمایش میدهد که با گزینه text داده شده یا از طریق textvariable به یک متغیر پیوند داده شده است. برخلافLabel، این ابزارک رشته را به چند خط میشکند تا نسبت ابعادی مشخصی به دست آید؛ شکست سطرها را در مرز واژهها انتخاب میکند و میتواند متن را چپ، وسط یا راست تراز کند. ازWidgetارثبری میکند. برای فهرست کامل گزینهها به صفحهی راهنمایmessageدر Tk مراجعه کنید.
- class tkinter.OptionMenu(master, variable, value, *values, **kwargs)¶
یک زیرکلاس کمکی از
Menubuttonکه یک منوی بازشو از گزینههای انحصاری متقابل را نمایش میدهد. variable یکVariableاست که با انتخاب همگام نگه داشته میشود، value انتخاب اولیه است، و values سایر ورودیهای منو هستند. میتوان برای آرگومان کلیدواژهای command یک کالبک تعیین کرد که با مقدار انتخابشده فراخوانی میشود، و آرگومان کلیدواژهای name نام ابزارک Tk را تنظیم میکند.- destroy()¶
ابزارک را نابود میکند و منوی بازشوی مرتبط را نیز پاکسازی میکند.
تغییر یافته در نسخهی 3.14: پشتیبانی از آرگومان کلیدواژهای name افزوده شد.
- class tkinter.PanedWindow(master=None, cnf={}, **kw)¶
یک
PanedWindowابزارک مدیریت چیدمان است که هر تعداد از قابهای فرزند (pane) را در یک ردیف (هنگامی که orient برابر'horizontal'باشد) یا یک ستون (هنگامی که orient برابر'vertical'باشد) میچیند. هر قاب یک ابزارک را در خود نگه میدارد، و هر جفت قاب مجاور با یک نوار جداکنندهی متحرک (sash) از هم جدا میشود که کاربر میتواند آن را با ماوس بکشد تا اندازهی ابزارکهای دو طرف آن تغییر کند. ازWidgetارث میبرد.گزینهی orient جهت چیدمان را مشخص میکند، sashwidth عرض هر نوار جداکننده را تنظیم میکند و sashrelief برجستگی آن را تعیین میکند. هنگامی که showhandle true باشد، دستهی کوچکی روی هر نوار جداکننده رسم میشود که کاربر میتواند با گرفتن آن، نوار جداکننده را بکشد. برای فهرست کامل گزینهها به صفحهی راهنمای
panedwindowدر Tk مراجعه کنید.- add(child, **kw)¶
child را به panedwindow بهعنوان یک بخش جدید اضافه کنید، که پس از بخشهای موجود قرار میگیرد. آرگومانهای کلیدواژهای گزینههای مدیریتی بهازای هر بخش را برای child مشخص میکنند؛ این آرگومانها میتوانند هر یک از گزینههای پذیرفتهشده توسط
paneconfigure()باشند.
- remove(child)¶
بخش حاوی child را از panedwindow حذف میکند. همهی گزینههای مدیریت هندسی برای child فراموش میشوند.
forget()نام مستعارremove()است. این کارforget()ارثبریشده از مدیر هندسی را میپوشاند؛ برای حذف خود ابزارک از مدیرش، ازpack_forget()،grid_forget()یاplace_forget()استفاده کنید.
- panes()¶
یک تاپل از ابزارکهای مدیریتشده توسط panedwindow را، یکی بهازای هر بخش، به ترتیب برمیگرداند.
- panecget(child, option)¶
مقدار فعلی گزینهی مدیریت option برای بخش شامل child را برمیگرداند. option میتواند هر مقداری باشد که
paneconfigure()مجاز میداند.
- paneconfigure(tagOrId, cnf=None, **kw)¶
گزینههای مدیریت بخش حاوی ابزارک tagOrId را بخوانید یا تغییر دهید. بدون هیچ گزینهای، یک دیکشنری برمیگرداند که همه گزینههای در دسترس برای بخش را توصیف میکند؛ اگر یک نام گزینه بهصورت یک رشته داده شود، توصیف همان گزینه را برمیگرداند؛ در غیر این صورت، گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده شامل after و before (درج بخش بعد از یا قبل از یک پنجره مدیریتشده دیگر)، height و width (ابعاد بیرونی پنجره، شامل هرگونه حاشیه)، minsize (حداقل اندازه در بعد بخشبندی)، padx و pady (فضای اضافی که در هر طرف پنجره باقی میماند)، sticky (جایدهی یا کشش پنجره درون بخشی بیشازاندازه، با استفاده از رشتهای از نویسههای
n،s،eوw)، hide (پنهان کردن بخش ضمن نگهداشتن آن در فهرست بخشها) و stretch (نحوه تخصیص فضای اضافی به بخش: یکی از'always'،'first'،'last'،'middle'یا'never') میشوند.paneconfig()نام مستعاری ازpaneconfigure()است.
- identify(x, y)¶
کامپوننت panedwindow زیر نقطهی دادهشده با x و y در مختصات پنجره را شناسایی میکند. اگر نقطه روی یک نوار جداکننده یا دستهی نوار جداکننده (sash handle) باشد، نتیجه یک تاپل دو عنصری است که شامل اندیس نوار جداکننده یا دسته و واژهای است که نشان میدهد نقطه روی یک نوار جداکننده است یا یک دسته، مانند
(0, 'sash')یا(2, 'handle'). اگر نقطه روی هر بخش دیگری از panedwindow باشد، نتیجه یک رشته خالی است.
- sash(*args)¶
موقعیت نوارهای جداکننده را در panedwindow دریافت یا تغییر دهید. این یک پوشش نازک حول زیردستور
sashدر Tk است؛ بهطور معمول بهجای آن باید از متدهای راحتیsash_coord()،sash_mark()وsash_place()استفاده شود.
- sash_coord(index)¶
جفت مختصات x و y فعلی برای نوار جداکننده مشخصشده با index را برمیگرداند، که باید یک عدد صحیح بین ۰ و یک واحد کمتر از تعداد بخشهای موجود در panedwindow باشد. مختصات برگرداندهشده، مختصات گوشه بالا سمت چپ ناحیهای است که نوار جداکننده را در بر دارد.
- sash_mark(index)¶
موقعیت فعلی ماوس را برای نوار جداکننده مشخصشده با index ثبت میکند، تا همراه با عملیاتهای بعدی کشیدن sash برای جابهجایی sash استفاده شود.
- sash_place(index, x, y)¶
نوار جداکننده مشخصشده با index را در مختصات x و y قرار دهید.
- proxy(*args)¶
موقعیت پراکسی نوار جداکننده (sash proxy) را بخوانید یا تغییر دهید؛ همان نوار جداکنندهی «شبح» که هنگام کشیدهشدن یک نوار جداکننده با تغییر اندازهی غیرشفاف نمایش داده میشود. این پوششی نازک بر زیردستور
proxyTk است؛ معمولاً باید بهجای آن از متدهای سهولتبخشproxy_coord()،proxy_forget()وproxy_place()استفاده شود.
- proxy_coord()¶
یک تاپل شامل مختصات x و y آخرین موقعیت پراکسی را برمیگرداند.
- proxy_forget()¶
پراکسیرا از نمایشگر حذف کنید.
- proxy_place(x, y)¶
پراکسی را در مختصات x و y قرار دهید.
- class tkinter.Radiobutton(master=None, cnf={}, **kw)¶
ابزارک
Radiobuttonیک رشتهی متنی، بیتمپ یا تصویر را بههمراه یک مکاننما لوزی یا دایرهای نمایش میدهد و یکی از چند گزینه را انتخاب میکند. این ابزارک همهی رفتار یک دکمهی ساده را دارد و علاوه بر این، قابل انتخاب است: معمولاً چند دکمهی رادیویی یک variable مشترک دارند و انتخاب یکی، آن variable را روی value آن دکمهی رادیویی تنظیم میکند؛ هر دکمهی رادیویی همچنین variable را پایش میکند و هنگام تغییر variable، بهطور خودکار خود را انتخاب یا لغو انتخاب میکند. ازWidgetارث میبرد. علاوه بر گزینههای استاندارد ابزارک، یک دکمهی رادیویی گزینههای مستندشده در صفحهی راهنمایradiobuttonدر Tk را میپذیرد، از جمله variable، value و command.- invoke()¶
دقیقاً همان کاری را انجام میدهد که اگر کاربر دکمهی رادیویی را با ماوس فشار میداد، رخ میداد: دکمه را انتخاب میکند و فرمان مرتبط را، در صورت وجود، فراخوانی میکند. نتیجهی فرمان را برمیگرداند، یا اگر فرمانی به دکمهی رادیویی مرتبط نباشد، یک رشتهی خالی برمیگرداند. اگر وضعیت دکمهی رادیویی
disabledباشد، این نادیده گرفته میشود.
- select()¶
دکمه رادیویی را انتخاب کنید و متغیر مرتبط را روی مقدار متناظر با این ابزارک تنظیم کنید.
- deselect()¶
دکمه رادیویی را از حالت انتخاب خارج کنید و متغیر مرتبط را به یک رشته خالی تنظیم کنید. اگر این دکمه رادیویی در حال حاضر انتخاب نشده باشد، این عمل تأثیری ندارد.
- flash()¶
دکمه رادیویی را با نمایش مجدد چندباره، بهصورت متناوب بین رنگهای فعال و عادی، به حالت چشمکزن درمیآورد. در پایان چشمک، دکمه رادیویی در همان وضعیت عادی یا فعالی که در زمان فراخوانی متد داشت باقی میماند. اگر وضعیت دکمه رادیویی
disabledباشد، این عمل نادیده گرفته میشود.
- class tkinter.Scale(master=None, cnf={}, **kw)¶
ابزارک
Scaleبه کاربر اجازه میدهد با جابهجا کردن یک لغزنده در طول یک شیار، یک مقدار عددی را انتخاب کند. این ابزارک میتواند بهصورت عمودی یا افقی جهتدهی شود و بهصورت اختیاری یک برچسب و مقدار فعلی را نمایش دهد. ازWidgetارث میبرد.علاوه بر گزینههای استاندارد ابزارک، یک مقیاس (scale) گزینههای مستندشده در صفحهی راهنمای
scaleدر Tk را میپذیرد، مانند from_، to، resolution، orient، tickinterval، variable و command. مانند سایر بخشهایtkinter،-ابتدای نام گزینهی Tk حذف میشود؛ from بهصورتfrom_نوشته میشود، زیراfromیک کلیدواژهی پایتون است.برای resolution غیر از عدد صحیح، مقادیر عددی و locale را ببینید.
- get()¶
مقدار فعلی مقیاس را برمیگرداند. اگر resolution مقیاس اعداد حسابی تولید کند، نتیجه یک عدد صحیح است و در غیر این صورت یک float است.
- set(value)¶
مقیاس را روی value تنظیم میکند و لغزنده را متناسب با آن جابهجا میکند. اگر مقیاس غیرفعال باشد، این عمل تأثیری ندارد.
- coords(value=None)¶
یک تاپل
(x, y)برمیگرداند که مختصات پیکسلی نقطهای روی خط مرکزی شیار را نسبت به ابزارک میدهد؛ این نقطه با value متناظر است. اگر value حذف شود، از مقدار فعلی مقیاس استفاده میشود.
- identify(x, y)¶
رشتهای را برمیگرداند که بخشی از مقیاس را در مختصات پیکسلی x و y توصیف میکند:
'slider'،'trough1'(بخشی از شیار که بالای لغزنده یا سمت چپ آن قرار دارد)،'trough2'(بخشی از شیار که پایین یا سمت راست لغزنده قرار دارد)، یا یک رشته خالی اگر نقطه بر روی هیچیک از این عناصر قرار نداشته باشد.
- class tkinter.Scrollbar(master=None, cnf={}, **kw)¶
ابزارک
Scrollbarیک لغزنده و دو پیکان را نمایش میدهد که به کاربر امکان پیمایش یک ابزارک مرتبط را میدهند، مانندListbox،Text،CanvasیاEntry. این ابزارک با تنظیم گزینهی xscrollcommand یا yscrollcommand ابزارک پیمایششده روی متدset()نوار پیمایش، و گزینهی command نوار پیمایش روی متدxview()یاyview()همان ابزارک، به آن متصل میشود. ازWidgetارثبری میکند.- get()¶
تنظیمات فعلی نوار پیمایش را بهصورت یک تاپل
(first, last)از دو کسر بین ۰ و ۱ برمیگرداند که توصیفکننده بخشی از سند است که در حال حاضر قابل مشاهده است، همانگونه که آخرین بار بهset()ارسال شده است.
- set(first, last)¶
نوار پیمایش را تنظیم میکند. first و last مقادیر کسری بین ۰ و ۱ هستند که موقعیت آغاز و پایان بخش نمایان سند مرتبط را مشخص میکنند. این متد معمولاً بهعنوان xscrollcommand یا yscrollcommand ابزارک پیمایششده ثبت میشود و توسط آن ابزارک فراخوانی میشود.
- activate(index=None)¶
المان index (یکی از
'arrow1'،'slider'یا'arrow2') را بهعنوان فعال علامتگذاری میکند و آن را مطابق گزینههای activebackground و activerelief نمایش میدهد. اگر index حذف شود، نام المان فعال کنونی را برمیگرداند، یا اگر هیچ المانی فعال نباشدNoneرا برمیگرداند.تغییر یافته در نسخهی 3.5: آرگومان index اکنون اختیاری شده است.
- delta(deltax, deltay)¶
یک عدد اعشاری برمیگرداند که نشاندهندهی تغییر کسری در تنظیم نوار پیمایش است و متناظر با جابهجایی لغزنده به اندازهی deltax پیکسل بهصورت افقی (برای نوارهای پیمایش افقی) یا deltay پیکسل بهصورت عمودی (برای نوارهای پیمایش عمودی) است.
- fraction(x, y)¶
یک float بین ۰ و ۱ برمیگرداند که نشان میدهد نقطهای با مختصات پیکسلی x، y در کجای شیار (trough) قرار دارد: ۰ متناظر با بالا یا چپ شیار و ۱ متناظر با پایین یا راست آن است.
- identify(x, y)¶
نام عنصر واقع در مختصات پیکسلی x، y (مانند
'arrow1') را برمیگرداند، یا اگر نقطه در هیچ عنصری از نوار پیمایش قرار نداشته باشد، یک رشته خالی برمیگرداند.
- class tkinter.Spinbox(master=None, cnf={}, **kw)¶
ابزارک
Spinboxیک ابزارک شبیهEntryبا یک جفت دکمهی پیکان بالا/پایین است که به کاربر امکان میدهد علاوه بر ویرایش مستقیم مقدار، یک بازه از مقادیر را گامبهگام بپیماید. مجموعهی مقادیر ممکن است یک بازه عددی تعیینشده با گزینههای from_، to و increment یا فهرست صریحی از رشتهها تعیینشده با گزینه values باشد (که بر بازه مقدم است). هر بار که یکی از پیکانها فراخوانی شود، کالبک command، در صورت وجود، فراخوانی میشود؛ گزینه wrap کنترل میکند که آیا با گام برداشتن از فراتر از هر یک از دو سر بازه، مقدار به سر دیگر میپیچد یا خیر؛ گزینه format مشخص میکند که مقادیر عددی چگونه قالببندی میشوند؛ و گزینه validate اعتبارسنجی متن واردشده را فعال میکند. این ابزارک ازWidgetوXViewارث میبرد.در صورت غیر عدد صحیح بودن increment، numeric values and the locale را ببینید.
بسیاری از متدها یک آرگومان index میپذیرند که یک نویسه در رشتهی spinbox را مشخص میکند. همانطور که در صفحهی راهنمای
spinboxدر Tk توضیح داده شده است، index میتواند یک اندیس عددی (شمارش از ۰)،'anchor'(نقطهی لنگر انتخاب)،'end'(درست پس از آخرین نویسه)،'insert'(نویسهی درست پس از مکاننمای درج)،'sel.first'یا'sel.last'(دو سر انتخاب)، یا@x(نویسهای که مختصات x پیکسل x در پنجره را پوشش میدهد) باشد.- get()¶
رشتهی اسپینباکس (spinbox) را برمیگرداند.
- insert(index, s)¶
نویسههای رشتهی s را درست پیش از نویسهی مشخصشده با index درج کنید.
- delete(first, last=None)¶
حذف یک یا چند نویسه از اسپینباکس . first اندیس اولین نویسه برای حذف است، و last اندیس نویسهای است که درست پس از آخرین نویسه برای حذف قرار دارد. اگر last ذکر نشود، تنها یک نویسه در first حذف میشود.
- icursor(index)¶
ترتیبی دهید که مکاننمای درج درست پیش از نویسهی مشخصشده توسط index نمایش داده شود.
- index(index)¶
اندیس عددی متناظر با index را بهصورت یک رشته برمیگرداند.
- bbox(index)¶
یک تاپل از چهار عدد صحیح
(x, y, width, height)برمیگرداند که جعبهی محدودکننده نویسهی متناظر با index را توصیف میکند. x و y مختصات پیکسلی گوشهی بالا-چپ نویسه نسبت به ابزارک هستند و width و height اندازههای آن بر حسب پیکسل هستند. جعبهی محدودکننده ممکن است به ناحیهای خارج از ناحیهی قابلمشاهدهی پنجره اشاره داشته باشد.این،
Misc.bbox()موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه ازgrid_bbox()استفاده کنید.
- identify(x, y)¶
نام المان پنجره را در مختصات پیکسلی x، y برمیگرداند: یکی از
'buttondown'،'buttonup'،'entry'یا'none'.
- invoke(element)¶
دکمه چرخشی (spin button) دادهشده توسط element را، که یا
'buttonup'است یا'buttondown'، فراخوانی کنید تا عمل مرتبط با آن راهاندازی شود.
- scan(*args)¶
یک پوشش نازک حول زیردستور
scanابزارک Tk، که برای پیادهسازی کشیدن سریع نما به کار میرود:scan('mark', x)x و نمای فعلی را ثبت میکند، وscan('dragto', x)نما را نسبت به آن نشان تنظیم میکند. متدهایscan_mark()وscan_dragto()این دو شکل را پوشش میدهند.
- scan_mark(x)¶
x و نمای فعلی را در پنجرهی اسپینباکس ثبت کنید تا در یک فراخوانی بعدی
scan_dragto()استفاده شود. این معمولاً با فشردهشدن یک دکمهی ماوس در ابزارک مرتبط است.
- scan_dragto(x)¶
نما را به اندازهی ۱۰ برابر اختلاف بین x و x ارسالشده به آخرین فراخوانی
scan_mark()تنظیم میکند. این معمولاً با رویدادهای حرکت ماوس مرتبط است و اثر کشیدن اسپینباکس با سرعت بالا از میان پنجره را ایجاد میکند.
- selection(*args)¶
پوششی نازک پیرامون زیردستور
selectionابزارک Tk، که برای تنظیم انتخاب درون اسپینباکس به کار میرود. این دستور بسته به اولین آرگومان، چندین شکل دارد، مانندselection('adjust', index)،selection('clear')،selection('element', ?elem?)،selection('from', index)،selection('present')،selection('range', start, end)وselection('to', index). متدهایselection_adjust()،selection_clear()،selection_element()،selection_from()،selection_present()،selection_range()وselection_to()این شکلها را پوشش میدهند.
- selection_adjust(index)¶
نزدیکترین انتهای انتخاب به نویسهی مشخصشده با index را پیدا میکند و آن انتهای انتخاب را طوری تنظیم میکند که در index باشد (شامل خود index، اما نه فراتر از آن). انتهای دیگر به نقطهی لنگر برای فراخوانیهای آیندهی
selection_to()تبدیل میشود. اگر انتخاب در حال حاضر در اسپینباکس وجود نداشته باشد، انتخاب جدیدی ایجاد میشود که نویسههای بین index و آخرین نقطهی لنگر را بهصورت فراگیر در بر گیرد.
- selection_clear()¶
اگر انتخاب در حال حاضر در این ابزارک باشد، آن را پاک میکند. اگر انتخاب در این ابزارک نباشد، این متد هیچ اثری ندارد.
توجه
این، متد موروثی
Misc.selection_clear()را میپوشاند، که گزینش X را پاک میکند؛ آن متد درSpinboxدر دسترس نیست.
- selection_element(element=None)¶
المان انتخابشدهی کنونی را تنظیم یا دریافت کنید. اگر element (یکی از
'buttonup'،'buttondown'یا'none') داده شود، آن دکمه چرخشی (spin button) انتخاب میشود و بهصورت فشرده نمایش داده میشود؛ در غیر این صورت، نام المان انتخابشدهی کنونی برگردانده میشود.
- selection_from(index)¶
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index تنظیم کنید، بدون آنکه خود انتخاب تغییر کند.
اضافه شده در نسخهی 3.8.
- selection_present()¶
اگر نویسههایی در اسپینباکس انتخاب شده باشند،
Trueبرمیگرداند، در غیر این صورتFalse.اضافه شده در نسخهی 3.8.
- selection_range(start, end)¶
انتخاب را طوری تنظیم کنید که شامل نویسههایی باشد که از نویسهای با اندیس start شروع میشود و با نویسهای درست پیش از end پایان مییابد. اگر end به همان نویسهی start یا نویسهای پیش از آن اشاره کند، انتخاب پاک میشود.
اضافه شده در نسخهی 3.8.
- selection_to(index)¶
انتخاب را بین index و نقطهی لنگر تنظیم میکند. اگر index پیش از نقطهی لنگر باشد، انتخاب از index شروع میشود و تا نقطهی لنگر ادامه مییابد، اما نقطهی لنگر را شامل نمیشود؛ اگر پس از آن باشد، انتخاب از نقطهی لنگر شروع میشود و تا index ادامه مییابد، اما index را شامل نمیشود؛ اگر یکسان باشد، هیچ اتفاقی نمیافتد. نقطهی لنگر همان نقطهای است که توسط آخرین فراخوانی
selection_from()یاselection_adjust()تنظیم شده است. اگر انتخاب در این ابزارک وجود نداشته باشد، انتخاب جدیدی با استفاده از آخرین نقطهی لنگر ایجاد میشود.اضافه شده در نسخهی 3.8.
- class tkinter.Text(master=None, cnf={}, **kw)¶
ابزارک
Textمتن چندخطی را نمایش و ویرایش میکند. بخشهایی از متن را میتوان با برچسبها سبکدهی کرد، موقعیتهای خاصی را میتوان با نشانهای شناور حاشیهنویسی کرد، و تصاویر دلخواه و ابزارکهای دیگر را میتوان در متن تعبیه کرد. این ابزارک همچنین سازوکار نامحدود واگرد/ازنو را ارائه میدهد و از ابزارکهای همتایی پشتیبانی میکند که دادههای زیربنایی یکسانی را به اشتراک میگذارند. ازWidget،XViewوYViewارث میبرد، بنابراین میتوان نما را بهصورت افقی و عمودی باxview()وyview()پیمایش کرد. برای فهرست کامل گزینهها به صفحه راهنمایtextTk مراجعه کنید.بیشتر متدها یک یا چند آرگومان اندیس میگیرند که موقعیتی را در متن مشخص میکنند. همانطور که در صفحهی راهنمای
textTk توضیح داده شده است، اندیس رشتهای است که از یک پایه تشکیل شده و بهصورت اختیاری یک یا چند اصلاحکننده در ادامهی آن میآید. پایه میتواند'line.char'(خط line، نویسه char، که سطرها از ۱ و نویسههای درون یک خط از ۰ شمارش میشوند؛'line.end'به نویسهی خط جدید در پایان خط اشاره دارد)،'end'(موقعیت درست پس از آخرین خط جدید)، نام یک نشان (mark)،'tag.first'یا'tag.last'(اولین نویسهی برچسبگذاریشده با tag، یا موقعیت درست پس از آخرین نویسهی اینچنینی)، نام یک تصویر یا پنجرهی تعبیهشده، یا@x,y(نویسهای که مختصات پیکسلی x، y در ابزارک را پوشش میدهد) باشد. اصلاحکنندهای مانند'+5 chars'،'-3 lines'،'linestart'،'lineend'،'wordstart'یا'wordend'اندیس را نسبت به پایهی خود تنظیم میکند؛ چندین اصلاحکننده میتوانند ترکیب شوند و از چپ به راست اعمال میشوند، برای مثال'insert wordstart - 1 c'.- insert(index, chars, *args)¶
رشتهی chars را درست پیش از نویسهی موجود در index درج کنید (اگر index برابر
'end'باشد، درست پیش از نویسهی خط جدید پایانی). بهطور پیشفرض، متن جدید هر برچسب موجود در هر دو طرف نقطهی درج را به ارث میبرد. اگر args داده شود، شامل مقادیر متناوب tagList و chars است: مقدار chars پیشین دقیقاً برچسبهای فهرستشده را دریافت میکند (فهرست برچسب میتواند یک نام برچسب منفرد یا دنبالهای از نامها باشد) و برچسبهای اطراف را نادیده میگیرد.
- delete(index1, index2=None)¶
بازهای از نویسهها را از index1 تا index2 حذف میکند، بدون اینکه index2 را شامل شود. اگر index2 ذکر نشود، نویسهی منفرد واقع در index1 حذف میشود. ابزارک همیشه یک نویسهی خط جدید را بهعنوان آخرین نویسهی خود نگه میدارد، بنابراین حذفی که باعث حذف آن شود، متناسب با آن تنظیم میشود.
- replace(index1, index2, chars, *args)¶
بازهای از نویسهها از index1 تا index2، بدون شامل شدن index2، را با chars جایگزین میکند. این معادل یک
delete()و به دنبال آن یکinsert()در index1 است؛ args مانندinsert()تفسیر میشود.اضافه شده در نسخهی 3.3.
- get(index1, index2=None)¶
متن را از index1 تا index2، اما بدون شامل شدن index2، به صورت یک رشته برمیگرداند. اگر index2 حذف شده باشد، نویسهی منفرد در index1 را برمیگرداند. تصاویر و پنجرههای تعبیهشده از نتیجه حذف میشوند.
- index(index)¶
موقعیت متناظر با index را در قالب متعارف
'line.char'برمیگرداند.
- compare(index1, op, index2)¶
موقعیتهای index1 و index2 را با استفاده از عملگر رابطهای op مقایسه میکند، که باید یکی از
'<'،'<='،'=='،'>='،'>'یا'!='باشد، و نتیجه بولی را برمیگرداند.
- count(index1, index2, *options, return_ints=False)¶
تعداد آیتمهای انواع درخواستی بین index1 و index2 را میشمارد؛ اگر index1 بعد از index2 باشد، شمارش منفی است. هر یک از options نوعی از آیتم را برای شمارش مشخص میکند:
'chars'،'displaychars'،'displayindices'،'displaylines'،'indices'،'lines'،'xpixels'یا'ypixels'(پیشفرض، که وقتی گزینهای داده نشود استفاده میشود،'indices'است). شبهگزینه'update'باعث میشود هرگونه اطلاعات چیدمان قدیمی پیش از ارزیابی گزینههای بعدی دوباره محاسبه شود. هنگامی که return_ints درست باشد و تنها یک گزینه شمارش داده شود، یک عدد صحیح ساده برمیگرداند؛ در غیر این صورت یک تاپل با یک عدد صحیح به ازای هر گزینه شمارش برمیگرداند (یا اگر نتیجه خالی باشد،None).اضافه شده در نسخهی 3.3.
تغییر یافته در نسخهی 3.13: پارامتر return_ints اضافه شد.
- see(index)¶
نما را طوری تنظیم میکند که نویسهی مشخصشده با index قابل مشاهده باشد. اگر از قبل قابل مشاهده باشد، این متد هیچ تأثیری ندارد؛ اگر در فاصلهی کمی خارج از دید باشد، ابزارک فقط به اندازهای پیمایش میکند که آن را به نزدیکترین لبه برساند، در غیر این صورت پیمایش میکند تا index را در وسط پنجره قرار دهد.
- bbox(index)¶
یک تاپل
(x, y, width, height)برمیگرداند که جعبهی محدودکننده بخش قابلمشاهدهی نویسه در اندیس index را بر حسب پیکسل مشخص میکند، یا اگر آن نویسه روی صفحهنمایش قابلمشاهده نباشدNoneبرمیگرداند.این،
Misc.bbox()موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه ازgrid_bbox()استفاده کنید.
- dlineinfo(index)¶
یک تاپل
(x, y, width, height, baseline)برمیگرداند که خط نمایشی حاوی index را توصیف میکند: چهار مقدار اول جعبهی محدودکنندهی خط را بر حسب پیکسل میدهند و baseline فاصلهی خط کرسی را که از بالای ناحیه به سمت پایین اندازهگیری میشود، میدهد. اگر آن خط نمایش روی صفحه قابل مشاهده نباشد،Noneبرمیگرداند.
- mark_set(markName, index)¶
نشان (mark) با نام markName را در موقعیتی درست پیش از نویسهای که در index قرار دارد تنظیم میکند و در صورتی که این نشان از پیش وجود نداشته باشد، آن را ایجاد میکند. نشانی که به این روش ایجاد شود، بهطور پیشفرض دارای گرانش راست (right gravity) است.
- mark_unset(*markNames)¶
هر یک از نشانهای نامبردهشده در markNames را حذف کنید. نشانهای ویژهی
insertوcurrentقابل حذف نیستند.
- mark_names()¶
یک تاپل از نامهای تمام نشانهایی که در حال حاضر در ابزارک تنظیم شدهاند برمیگرداند.
- mark_gravity(markName, direction=None)¶
اگر direction حذف شود، گرانی (gravity) نشان markName را برمیگرداند؛ این مقدار یا
'left'است یا'right'. در غیر این صورت، گرانی آن را روی direction تنظیم میکند. گرانی مشخص میکند که متن درجشده در موقعیت نشان، در کدام سمت نشان ظاهر میشود: نشانی با گرانی راست (پیشفرض) در سمت راست چنین متنی باقی میماند.
- mark_next(index)¶
نام اولین نشان در index یا پس از آن را برمیگرداند، یا اگر هیچ نشانی وجود نداشته باشد،
Noneرا برمیگرداند. هنگامی که index نام یک نشان باشد، جستجو درست پس از آن نشان شروع میشود.
- mark_previous(index)¶
نام آخرین نشان در index یا پیش از آن برگردانده میشود، یا اگر نشانی وجود نداشته باشد،
Noneبرگردانده میشود. هنگامی که index نام یک نشان باشد، جستجو درست پیش از آن نشان آغاز میشود.
- tag_add(tagName, index1, *args)¶
برچسب tagName را به بازهی نویسهها از index1 تا اندیس بعدی در args، اما بدون شامل شدن آن اندیس، اضافه کنید. ممکن است جفتهای بیشتری از اندیسها در args بیایند تا بازههای بیشتری برچسبگذاری شوند؛ یک اندیس واحد پایانی، فقط نویسهی همان اندیس را برچسبگذاری میکند.
- tag_remove(tagName, index1, index2=None)¶
برچسب tagName را از نویسهها، از index1 تا index2، اما بدون شامل شدن index2، حذف میکند (یا اگر index2 حذف شده باشد، از نویسهی واحد در index1). خود برچسب حتی اگر هیچ نویسهای آن را نداشته باشد، همچنان وجود دارد.
- tag_delete(*tagNames)¶
هر یک از برچسبهای نامبردهشده در tagNames را حذف کنید، آنها را از تمام نویسهها بردارید و گزینهها و مقیدسازیهای آنها را دور بیندازید.
- tag_configure(tagName, cnf=None, **kw)¶
گزینههای پیکربندی برچسب tagName را بخوانید یا تغییر دهید. این روش مشابه
configure()است، با این تفاوت که بهجای کل ابزارک، به یک برچسب اعمال میشود: بدون هیچ گزینهای، دیکشنریای که گزینههای فعلی را توصیف میکند برمیگرداند، در غیر این صورت گزینههای دادهشده را تنظیم میکند. تعریف یک برچسب به این روش همچنین به آن اولویتی بالاتر از هر برچسب موجود میدهد.گزینههای برچسب پشتیبانیشده، که همگی ظاهر متن برچسبگذاریشده را کنترل میکنند، عبارتند از:
- font
قلمی که برای متن استفاده میشود.
- foreground
رنگ مورد استفاده برای متن.
- background
رنگی که برای ناحیه پشت متن استفاده میشود.
- fgstipple, bgstipple
بیتمپهایی که برای نقطهنگاری کردن پیشزمینه (متن) و پسزمینه استفاده میشوند؛ فقط در X11 بهخوبی پشتیبانی میشوند.
- borderwidth
پهنای حاشیهای که اطراف متن بر اساس relief ترسیم میشود (پیشفرض
0).- relief
نمای سهبعدی حاشیهی متن:
'flat'(پیشفرض)،'raised'،'sunken'،'ridge'،'groove'یا'solid'.- offset
میزانی که متن بالاتر از خط کرسی (یا، اگر منفی باشد، پایینتر از آن) قرار میگیرد، برای بالانویسها و زیرنویسها.
- underline
اینکه آیا متن زیرخطدار شود یا خیر.
- underlinefg
رنگ زیرخط؛ بهطور پیشفرض برابر با رنگ متن است.
- overstrike
اینکه آیا سطری از میان متن کشیده شود یا خیر.
- overstrikefg
رنگ خط خطخوردگی؛ بهطور پیشفرض برابر با رنگ متن است.
- elide
اینکه متن حذفشده (پنهان) است.
- justify
نحوهی تراز کردن نخستین نویسهی یک خط نمایشی:
'left'(پیشفرض)،'right'یا'center'.- wrap
چگونگی شکستن سطرهایی که بیش از حد طولانی هستند:
'char'،'word'یا'none'.- lmargin1, lmargin2
میزان تورفتگی، بر حسب پیکسل، برای اولین خط نمایشیِ یک خط منطقی و برای سایر سطرهای نمایشی.
- lmargincolor
رنگ ناحیهی حاشیهی چپ.
- rmargin
حاشیه سمت راست، بر حسب پیکسل.
- rmargincolor
رنگ ناحیهی حاشیهی راست.
- spacing1, spacing2, spacing3
فضای اضافی، بر حسب پیکسل، بالای اولین خط نمایشی از یک خط منطقی، بین سطرهای نمایشی آن، و پایین آخرین خط نمایشی آن.
- tabs
مجموعهی نقاط توقف تب، در همان قالب گزینهی tabs ابزارک.
- tabstyle
چگونگی تفسیر ایستگاههای تب (tab stops):
'tabular'یا'wordprocessor'.- selectbackground, selectforeground
رنگهای پسزمینه و پیشزمینهای که برای متن در حالت انتخابشده استفاده میشوند.
توجه
Tk 8.6 گزینههای lmargincolor، overstrikefg، rmargincolor، selectbackground، selectforeground و underlinefg را افزود.
tag_config()نام مستعاری ازtag_configure()است.
- tag_cget(tagName, option)¶
مقدار فعلی گزینهی پیکربندی option برای برچسب tagName را برمیگرداند.
- tag_names(index=None)¶
اگر index حذف شود، تاپلی از نامهای همهی برچسبهای تعریفشده در ابزارک برمیگرداند؛ در غیر این صورت، فقط نامهای برچسبهای اعمالشده بر نویسهی موجود در index را برمیگرداند. نامها از کمترین اولویت به بیشترین اولویت مرتب شدهاند.
- tag_ranges(tagName)¶
یک تاپل از اندیسها برمیگرداند که همهی بازههای متن برچسبگذاریشده با tagName را توصیف میکند. نتیجه اندیسهای شروع و پایان را بهصورت یکدرمیان شامل میشود، بهطوری که عناصر
2*iو2*i+1کرانهای بازهی i-ام هستند.
- tag_nextrange(tagName, index1, index2=None)¶
از index1 به جلو (تا index2 در صورت داده شدن) جستجو میکند تا اولین محدوده از نویسههای برچسبگذاریشده با tagName را بیابد، و یک تاپل دو عنصری از اندیسهای شروع و پایان آن برمیگرداند، یا اگر چنین محدودهای وجود نداشته باشد، یک تاپل خالی برمیگرداند.
- tag_prevrange(tagName, index1, index2=None)¶
از index1 به عقب (تا index2 در صورت ارائه شدن) نزدیکترین بازه پیشین از نویسههای برچسبگذاریشده با tagName را جستجو میکند و یک تاپل دو عنصری از اندیسهای آغاز و پایان آن برمیگرداند، یا اگر چنین بازهای وجود نداشته باشد یک تاپل خالی برمیگرداند.
- tag_raise(tagName, aboveThis=None)¶
اولویت برچسب tagName را بالا میبرد تا درست بالاتر از اولویت aboveThis قرار گیرد، یا اگر aboveThis حذف شود، آن را به بالاترین اولویت در میان تمام برچسبها میرساند. هنگامی که گزینههای نمایش برچسبهای همپوشان با یکدیگر تعارض داشته باشند، برچسب با اولویت بالاتر برنده میشود.
- tag_lower(tagName, belowThis=None)¶
اولویت برچسب tagName را کاهش دهید، بهگونهای که دقیقاً پایینتر از اولویت belowThis قرار گیرد، یا اگر belowThis ذکر نشود، به پایینترین اولویت همه برچسبها برسد.
- tag_bind(tagName, sequence, func, add=None)¶
رویداد sequence را برای نویسههایی که با tagName برچسبگذاری شدهاند، به کالبک func متصل میکند، بهطوریکه func هنگام وقوع آن رویداد روی چنین نویسهای فراخوانی میشود. اگر add درست باشد، اتصال در کنار هرگونه اتصال موجود برای sequence اضافه میشود، در غیر این صورت آنها را جایگزین میکند. مانند
bind()کار میکند و شناسه اتصال جدید را برمیگرداند.
- tag_unbind(tagName, sequence, funcid=None)¶
اتصالهای رویداد sequence را برای نویسههای برچسبگذاریشده با tagName حذف میکند. اگر funcid داده شود، فقط همان اتصال (که توسط
tag_bind()برگردانده شده است) حذف میشود و کالبک آن از ثبت خارج میشود.تغییر یافته در نسخهی 3.13: اگر funcid داده شده باشد، فقط همان کالبک از اتصال خارج میشود.
- image_create(index, cnf={}, **kw)¶
تصویری را در index تعبیه میکند و نام اختصاصدادهشده به این نمونه تصویر را برمیگرداند؛ سپس میتوان از آن بهعنوان اندیس استفاده کرد یا آن را به سایر متدهای
image_*ارسال کرد. گزینههای دادهشده در cnf و kw شامل image (تصویر Tk برای نمایش)، name (نام پایه برای نمونه)، align، padx و pady هستند.
- image_cget(index, option)¶
مقدار فعلی گزینهی پیکربندی option برای تصویر تعبیهشده در اندیس index را برمیگرداند.
- image_configure(index, cnf=None, **kw)¶
گزینههای پیکربندی تصویر تعبیهشده در index را دریافت یا تغییر دهید؛ مانند
configure()اما بر آن تصویر اعمال میشود.
- image_names()¶
یک تاپل از نامهای همهی تصاویر تعبیهشده در ابزارک را بازمیگرداند.
توجه
این، متد موروثی
Misc.image_names()را میپوشاند، که نام تمام تصاویر در مفسر Tcl را برمیگرداند؛ آن متد برای یکTextدر دسترس نیست.
- window_create(index, cnf={}, **kw)¶
یک پنجره (هر ابزارکی) را در index تعبیه کنید. گزینههای دادهشده در cnf و kw شامل window (ابزارکی که باید تعبیه شود)، create (یک کالبک که ابزارک را در صورت نیاز ایجاد میکند)، align، stretch، padx و pady میشوند. ابزارک تعبیهشده باید زیرمجموعهای از والد ابزارک متنی باشد.
- window_cget(index, option)¶
مقدار فعلی گزینهی پیکربندی option را برای پنجرهی تعبیهشده در اندیس index برمیگرداند.
- window_configure(index, cnf=None, **kw)¶
گزینههای پیکربندی پنجرهی تعبیهشده در index را بخوانید یا تغییر دهید، مانند
configure()اما برای آن پنجره اعمال میشود.window_config()نام مستعاری ازwindow_configure()است.
- window_names()¶
تاپلی از نام تمام پنجرههای تعبیهشده در ابزارک برمیگرداند.
- edit(*args)¶
پوششی سطح پایین حول فرمان ابزارک
editدر Tk که سازوکار undo/redo و پرچم modified را کنترل میکند؛ args زیرفرمانeditو آرگومانهای آن است. متدهایedit_*()در زیر، پوششیهای نازکی حول آن هستند و معمولاً راحتتر هستند.
- edit_modified(arg=None)¶
اگر arg حذف شود، وضعیت فعلی پرچم تغییر را بهصورت درست یا نادرست برمیگرداند؛ این پرچم هر زمان که متن درج یا حذف شود، بهطور خودکار تنظیم میشود. در غیر این صورت، پرچم را به مقدار بولی arg تنظیم میکند.
- edit_undo()¶
آخرین عملیات ویرایش را واگرد میکند؛ یعنی همهی درجها و حذفهایی را که از جداکنندهی پیشین در پشتهی واگرد ثبتشدهاند واگرد میکند و آن را به پشتهی بازانجام منتقل میکند. اگر پشتهی واگرد خالی باشد،
TclErrorرا پرتاب میکند. اگر گزینهی undo مقدار true نداشته باشد، هیچ اثری ندارد. از Tk 9.0، یک تاپل از اندیسها برمیگرداند که مرزهای بازههای متنی را که تغییر کردهاند مشخص میکنند.
- edit_redo()¶
آخرین عمل ویرایشی واگردشده را دوباره اعمال میکند، مشروط بر اینکه از آن زمان ویرایش دیگری انجام نشده باشد، و آن را به پشتهی واگرد بازمیگرداند. اگر پشتهی بازاجرا خالی باشد،
TclErrorرا پرتاب میکند. هیچ تأثیری ندارد، مگر اینکه گزینهی undo درست باشد. از Tk 9.0، یک تاپل از اندیسها برمیگرداند که محدودههای متن تغییرکرده را مشخص میکنند.
- edit_reset()¶
پشتههای واگرد و بازگرد را پاک کنید.
- edit_separator()¶
یک جداکننده را روی پشتهی واگرد (undo) قرار میدهد و مرزی میان اقدامهای ویرایشی برای واگرد و بازانجام (redo) مشخص میکند. این کار هیچ تأثیری ندارد، مگر اینکه گزینهی undo درست باشد. هنگامی که گزینهی autoseparators درست باشد، جداکنندهها بهصورت خودکار درج میشوند.
- search(pattern, index, stopindex=None, forwards=None, backwards=None, exact=None, regexp=None, nocase=None, count=None, elide=None)¶
pattern را از index جستوجو میکند و اندیس نخستین نویسهی اولین تطابق را برمیگرداند، یا در صورت نبود تطابق، یک رشته خالی برمیگرداند. در صورت ارائه stopindex، جستوجو در stopindex متوقف میشود؛ در غیر این صورت، جستوجو بهصورت چرخشی میان دو انتهای متن ادامه مییابد تا دوباره به موقعیت شروع برسد. پرچمهای کلیدواژهای بولی زیر، جستوجو را کنترل میکنند: forwards یا backwards جهت را انتخاب میکنند (پیشفرض رو به جلو است)؛ exact (پیشفرض) یا regexp تطبیق لفظی یا تطبیق با عبارت باقاعده را انتخاب میکنند؛ nocase تطابق را غیرحساس به بزرگی و کوچکی حروف میکند؛ و elide باعث میشود متن پنهان نیز جستوجو شود. اگر count یک
Variableباشد، تعداد موقعیتهای اندیس در تطابق، در آن ذخیره میشود.
- scan_mark(x, y)¶
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی
scan_dragto()ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
- scan_dragto(x, y)¶
ابزارک را به اندازهی ۱۰ برابر اختلاف بین x، y و مختصات ارسالشده به آخرین فراخوانی
scan_mark()پیمایش میکند. این عمل معمولاً به رویدادهای حرکت ماوس متصل میشود و اثر کشیدهشدن متن با سرعت بالا در پنجره را ایجاد میکند.
- debug(boolean=None)¶
اگر boolean حذف شده باشد، برمیگرداند که آیا بررسیهای سازگاری درونی ساختار دادهای B-tree فعال هستند یا خیر. در غیر این صورت، آنها را فعال یا غیرفعال میکند. این تنظیم میان تمام ابزارکهای متنی مشترک است و ممکن است ابزارکهایی را که مقادیر زیادی متن دارند بهطور محسوسی کند کند.
- dump(index1, index2=None, command=None, **kw)¶
محتویات ابزارک را از index1 تا index2، بدون اینکه index2 را شامل شود، برمیگرداند (یا اگر index2 حذف شده باشد، فقط بخش مربوط به index1 را برمیگرداند)، از جمله متن و اطلاعاتی دربارهی نشانهها، برچسبها، تصاویر و پنجرهها. نتیجه فهرستی از سهتاییهای
(key, value, index)است، که در آن key یکی از'text'،'mark'،'tagon'،'tagoff'،'image'یا'window'است. بهطور پیشفرض همهی انواع گزارش میشوند؛ ارسال هر یک از آرگومانهای کلیدواژهای all، text، mark، tag، image یا window بهعنوان true، خروجی را به انواع انتخابشده محدود میکند. اگر command داده شود، یک بار بهازای هر سهتایی با سه مقدار بهعنوان آرگومان فراخوانی میشود و چیزی برگردانده نمیشود.
- peer_create(newPathName, cnf={}, **kw)¶
یک ابزارک متنی همتا با نام مسیر newPathName ایجاد کنید که دادههای زیربنایی این ابزارک (متن، نشانهها، برچسبها، تصاویر و پشتهی واگرد) را به اشتراک میگذارد. تغییراتی که از طریق هر همتا اعمال شوند، در همهی آنها منعکس میشوند. بهطور پیشفرض، همتا همان سطرهایی را پوشش میدهد که این ابزارک پوشش میدهد؛ میتوان گزینههای استاندارد متنی، از جمله startline و endline را برای تغییر این رفتار ارائه کرد.
اضافه شده در نسخهی 3.3.
- peer_names()¶
یک تاپل از نامهای مسیر همتاهای این ابزارک را برمیگرداند، بدون اینکه خود ابزارک را شامل شود.
اضافه شده در نسخهی 3.3.
کلاسهای متغیر¶
- class tkinter.Variable(master=None, value=None, name=None)¶
کلاس پایه برای دربرگیرندههای متغیر Tk. یک متغیر Tk مقداری است که در مفسر Tcl ذخیره میشود و میتواند از طریق گزینههای variable یا textvariable به ابزارکها پیوند داده شود (به جفتسازی متغیرهای ابزارک مراجعه کنید)، بهطوری که تغییرات در هر دو جهت منتشر شوند: بهروزرسانی متغیر، هر ابزارک متصل به آن را بهروزرسانی میکند و ویرایش چنین ابزارکی توسط کاربر، متغیر را بهروزرسانی میکند.
master ابزارکی است که مفسر Tcl آن مالک متغیر است؛ اگر حذف شود، از پنجره ریشه پیشفرض استفاده میشود. value مقدار اولیه است؛ اگر حذف شود، از پیشفرضی متناسب با نوع استفاده میشود. name نام متغیر در مفسر Tcl است؛ اگر حذف شود، نام یکتایی به شکل
'PY_VARnum'تولید میشود. اگر name با یک متغیر موجود مطابقت داشته باشد و value حذف شود، مقدار موجود حفظ میشود.در بیشتر موارد باید از یکی از زیرکلاسهای نوعدار زیر --
StringVar،IntVar،DoubleVarیاBooleanVar-- به جای استفادهی مستقیم ازVariableاستفاده کنید.توجه
هنگامی که یک
Variableزبالهروبی میشود، متغیر Tcl آن حذف میشود. تا زمانی که یک ابزارک به آن پیوند دارد، ارجاعی به آن نگه دارید، برای مثال با ذخیره کردن آن بهعنوان یک ویژگی بهجای یک متغیر محلی. در غیر این صورت، Tk متغیر Tcl را دوباره ایجاد میکند تا ابزارک را در حال کار نگه دارد، اما این متغیر هرگز دوباره حذف نمیشود و باعث نشت یک متغیر Tcl بهازای رها شدن هر دربرگیرنده میشود.تغییر یافته در نسخهی 3.10: اکنون دو متغیر تنها زمانی با هم برابر (
==) مقایسه میشوند که نام یکسانی داشته باشند، از یک کلاس باشند و به یک مفسر Tcl تعلق داشته باشند.- get()¶
مقدار فعلی متغیر را برمیگرداند. در کلاس پایه، مقدار بهصورت یک رشته برگردانده میشود؛ زیرکلاسهای نوعدار آن را به نوع مناسب پایتون تبدیل میکنند.
- set(value)¶
متغیر را روی value تنظیم کنید.
initialize()نام مستعارset()است.اضافه شده در نسخهی 3.3: املای initialize.
- trace_add(mode, callback)¶
callback را ثبت کنید تا هرگاه متغیر مطابق mode مورد دسترسی قرار گرفت، فراخوانی شود. mode یکی از رشتههای
'array'،'read'،'write'یا'unset'است، یا فهرستی یا تاپلی از چنین رشتههایی.هنگامی که فعال شود، callback با سه آرگومان فراخوانی میشود: نام متغیر Tcl، یک اندیس (یا یک رشته خالی اگر متغیر عنصری از یک آرایه نباشد)، و mode که فراخوانی را فعال کرده است.
نام داخلی کالبک ثبتشده را برمیگرداند، که میتوان آن را به
trace_remove()ارسال کرد.اضافه شده در نسخهی 3.6.
- trace_remove(mode, cbname)¶
یک کالبک ردگیری را از متغیر حذف کنید. mode باید با mode ارسالشده به
trace_add()مطابقت داشته باشد، و cbname نام کالبکی است که توسطtrace_add()بازگردانده شده است.اضافه شده در نسخهی 3.6.
- trace_info()¶
فهرستی از جفتهای
(modes, cbname)برمیگرداند که توصیفکنندهی همهی ردگیریهایی هستند که در حال حاضر روی متغیر تنظیمشدهاند؛ در اینجا modes تاپلی از رشتههای حالت و cbname نام کالبک داخلی است.اضافه شده در نسخهی 3.6.
- trace_variable(mode, callback)¶
callback را ثبت کنید تا هنگامی که متغیر مطابق mode مورد دسترسی قرار میگیرد، فراخوانی شود. mode یکی از رشتههای
'r'،'w'یا'u'برای خواندن، نوشتن یا حذف است. نام داخلی کالبک ثبتشده را برمیگرداند.trace()یک نام مستعار برایtrace_variable()است.منسوخ شده از نسخهی 3.6: بهجای آن از
trace_add()استفاده کنید. این متد یک ویژگی Tcl را پوشش میدهد که در Tcl 9.0 حذف شده است.
- trace_vdelete(mode, cbname)¶
کالبک ردگیری به نام cbname را که برای mode با
trace_variable()ثبت شده است، حذف کنید.منسوخ شده از نسخهی 3.6: بهجای آن از
trace_remove()استفاده کنید. این متد پوششی برای یک قابلیت Tcl است که در Tcl 9.0 حذف شده است.
- trace_vinfo()¶
فهرستی از جفتهای
(mode, cbname)را برای تمام ردگیریهای تنظیمشده روی متغیر باtrace_variable()برمیگرداند.منسوخ شده از نسخهی 3.6: بهجای آن از
trace_info()استفاده کنید. این متد پوششی برای یک قابلیت Tcl است که در Tcl 9.0 حذف شده است.
- class tkinter.StringVar(master=None, value=None, name=None)¶
زیرکلاسی از
Variableکه یک رشته را نگه میدارد. مقدار پیشفرض''است.
- class tkinter.IntVar(master=None, value=None, name=None)¶
یک زیرکلاس از
Variableکه یک عدد صحیح را نگه میدارد. مقدار پیشفرض0است.
- class tkinter.DoubleVar(master=None, value=None, name=None)¶
زیرکلاسی از
Variableکه یک عدد اعشاری را نگه میدارد. مقدار پیشفرض0.0است.توجه
یک مقدار ممیز شناور همیشه با یک نقطه (
.) بهعنوان جداکننده اعشاری تجزیه میشود، اماSpinbox،Scaleوttk.Spinboxآن را مطابق localeLC_NUMERICقالببندی میکنند. در localeای که از کاما استفاده میکند، آنها مقداری تولید میکنند کهget()نمیتواند آن را بخواند وTclErrorپرتاب میشود. برای اجتناب از این مورد،LC_NUMERICرا روی localeای تنظیم کنید که از نقطه استفاده میکند (مانند'C').
- class tkinter.BooleanVar(master=None, value=None, name=None)¶
یک زیرکلاس از
Variableکه یک مقدار بولی نگه میدارد. مقدار پیشفرضFalseاست.- get()¶
مقدار متغیر را بهعنوان
boolبرمیگرداند. اگر مقدار نتواند بهعنوان یک بولی تفسیر شود، یکValueErrorپرتاب میکند.
- set(value)¶
متغیر را روی value تنظیم میکند و آن را به بولی تبدیل میکند.
initialize()نام مستعاری ازset()است.اضافه شده در نسخهی 3.3: املای initialize.
کلاسهای تصویر¶
- class tkinter.Image(imgtype, name=None, cnf={}, master=None, **kw)¶
کلاس پایه برای تصاویر Tk. imgtype نوع تصویر Tk است، یکی از
'photo'یا'bitmap'. تصویر یک شیء دارای نام است که ابزارکها میتوانند آن را از طریق گزینهی image خود نمایش دهند؛ حذف همهی ارجاعها به شیءImage، تصویر زیربنایی Tk را حذف میکند. معمولاً بهجای ایجاد مستقیم یکImage، یکPhotoImageیاBitmapImageایجاد میکنید.گزینههای پیکربندی تصویر با cnf و kw مشخص میشوند و بعداً میتوان آنها را با پروتکل نگاشت (با استفاده از
image[key]) یا با متدconfigure()پرسوجو و تغییر داد.- configure(**kw)¶
یک یا چند گزینهی پیکربندی تصویر را تغییر دهید. گزینههای معتبر به نوع تصویر بستگی دارند؛ به
PhotoImageوBitmapImageمراجعه کنید.config()نام مستعاری ازconfigure()است.
- height()¶
ارتفاع تصویر را بر حسب پیکسل برمیگرداند.
- width()¶
عرض تصویر را بر حسب پیکسل برمیگرداند.
- type()¶
نوع تصویر را برمیگرداند، یعنی مقدار imgtype که با آن ایجاد شده است (برای مثال
'photo'یا'bitmap').
- class tkinter.PhotoImage(name=None, cnf={}, master=None, **kw)¶
یک تصویر تمامرنگی (نوع تصویر
photoدر Tk)، که بهصورت داخلی با درجهای متغیر از شفافیت برای هر پیکسل ذخیره میشود. این تصویر میتواند پروندههای GIF، PPM/PGM و (در Tk 8.6 و بعد از آن) PNG را بخواند و بنویسد، پروندههای SVG را (در Tk 9.0 و بعد از آن) بخواند، و در ابزارکها ترسیم شود. ازImageارث میبرد.گزینههای پیکربندی شامل data (محتوای تصویر بهصورت یک رشته)، file (نام پروندهای که محتوا از آن خوانده میشود)، format (نام هندلر قالب پرونده)، width و height (اندازهی تصویر، که هنگام ساخت آن بهصورت تکهتکه استفاده میشود)، gamma و palette هستند.
- blank()¶
تصویر را خالی کنید؛ یعنی کل تصویر را طوری تنظیم کنید که هیچ دادهای نداشته باشد، بهگونهای که بهصورت شفاف نمایش داده شود و پسزمینهی هر پنجرهای که در آن نمایش داده میشود، از پشت آن نمایان باشد.
- cget(option)¶
مقدار فعلی گزینهی پیکربندی option را برمیگرداند.
- copy(*, from_coords=None, zoom=None, subsample=None)¶
یک
PhotoImageجدید با یک کپی از این تصویر برمیگرداند.from_coords ناحیهی فرعی مستطیلی از تصویر مبدأ را مشخص میکند که باید کپی شود. این مقدار باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح
(x1, y1, x2, y2)باشد.(x1, y1)و(x2, y2)دو گوشهی مقابل بهصورت مورب از مستطیل را مشخص میکنند. اگر x2 و y2 مشخص نشده باشند، بهطور پیشفرض برابر با گوشهی پایین سمت راست تصویر مبدأ خواهند بود. پیکسلهای کپیشده شامل لبههای چپ و بالای مستطیل میشوند، اما لبههای پایین یا راست را شامل نمیشوند. اگر from_coords داده نشود، کل تصویر مبدأ کپی میشود.اگر zoom یا subsample مشخص شده باشند، تصویر مانند متدهای
zoom()یاsubsample()تبدیل میشود. مقدار باید یک عدد صحیح یا جفتی از اعداد صحیح باشد.تغییر یافته در نسخهی 3.13: پارامترهای from_coords، zoom و subsample افزوده شدند.
- copy_replace(sourceImage, *, from_coords=None, to=None, shrink=False, zoom=None, subsample=None, compositingrule=None)¶
یک ناحیه را از sourceImage (که باید یک
PhotoImageباشد) به این تصویر کپی میکند، احتمالاً با بزرگنمایی پیکسلی و/یا زیرنمونهبرداری. اگر هیچ گزینهای تعیین نشده باشد، کل sourceImage به این تصویر کپی میشود و از مختصات(0, 0)شروع میشود.from_coords زیرناحیهی مستطیلی از تصویر مبدأ را برای کپیشدن مشخص میکند، همانطور که در متد
copy()آمده است.to یک زیرناحیهی مستطیلی از تصویر مقصد را که تحت تأثیر قرار میگیرد مشخص میکند. این مقدار باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح
(x1, y1, x2, y2)باشد. اگر x2 و y2 مشخص نشده باشند، مقدار پیشفرض آنها(x1, y1)بهاضافهی اندازهی ناحیهی مبدأ (پس از زیرنمونهبرداری و بزرگنمایی، در صورت مشخص شدن) خواهد بود. اگر x2 و y2 مشخص شده باشند، ناحیهی مبدأ در صورت نیاز تکرار میشود تا ناحیهی مقصد را بهصورت کاشیکاریشده پر کند.اگر shrink درست باشد، اندازهی تصویر مقصد، در صورت لزوم، کاهش مییابد تا ناحیهای که در آن کپی میشود، در گوشهی پایین سمت راست تصویر قرار گیرد.
اگر zoom یا subsample مشخص شده باشند، تصویر مانند متدهای
zoom()یاsubsample()تبدیل میشود. مقدار باید یک عدد صحیح یا جفتی از اعداد صحیح باشد.compositingrule مشخص میکند که پیکسلهای شفاف تصویر مبدأ چگونه با تصویر مقصد ترکیب میشوند. با
'overlay'(پیشفرض)، محتوای قدیمی تصویر مقصد قابلمشاهده باقی میماند، گویی تصویر مبدأ بر روی یک قطعه فیلم شفاف چاپ شده و بر روی تصویر مقصد قرار گرفته باشد. با'set'، محتوای قدیمی تصویر مقصد دور انداخته میشود و از تصویر مبدأ همانطور که هست استفاده میشود.اضافه شده در نسخهی 3.13.
- data(format=None, *, from_coords=None, background=None, grayscale=False)¶
دادههای تصویر را برمیگرداند.
format نام هندلر قالب پرونده تصویری مورد استفاده را مشخص میکند. اگر داده نشود، داده بهصورت یک تاپل (یک عنصر به ازای هر ردیف) از رشتههایی برگردانده میشود که حاوی رنگهای جداشده با فاصله (یک عنصر به ازای هر پیکسل/ستون) در قالب
#RRGGBBهستند.from_coords یک ناحیهی مستطیلی از تصویر را که بازگردانده خواهد شد مشخص میکند. این مقدار باید یک تاپل یا فهرستی شامل ۱ تا ۴ عدد صحیح بهصورت
(x1, y1, x2, y2)باشد. اگر فقط x1 و y1 تعیین شده باشند، ناحیه از(x1, y1)تا گوشهی پایین-راست تصویر گسترش مییابد. اگر هر چهار مختصات داده شوند، آنها گوشههای مورب مقابل ناحیه را مشخص میکنند؛(x1, y1)جزو ناحیه است و(x2, y2)جزو ناحیه نیست. اگر from_coords داده نشود، کل تصویر بازگردانده میشود.اگر background مشخص شده باشد، داده حاوی هیچگونه اطلاعات شفافیت نیست؛ در تمام پیکسلهای شفاف، رنگ با رنگ مشخصشده جایگزین میشود.
اگر grayscale درست باشد، دادهها حاوی اطلاعات رنگ نیستند؛ تمام دادههای پیکسل به مقیاس خاکستری تبدیل میشوند.
اضافه شده در نسخهی 3.13.
- get(x, y)¶
رنگ پیکسل در مختصات (x, y) را بهصورت یک تاپل
(r, g, b)از سه عدد صحیح بین ۰ و ۲۵۵ برمیگرداند، که بهترتیب نشاندهندهی کامپوننتهای قرمز، سبز و آبی هستند.
- put(data, to=None)¶
پیکسلهای تصویر را به رنگهای دادهشده در data تنظیم کنید، که باید یک رشته یا یک دنباله تودرتو از ردیفهای افقی رنگهای پیکسل باشد (برای مثال
"{red green} {blue yellow}").to مختصات ناحیهای از تصویر را مشخص میکند که دادهها به آن کپی میشوند. این باید یک تاپل یا فهرستی از ۲ یا ۴ عدد صحیح بهصورت
(x1, y1)یا(x1, y1, x2, y2)باشد که گوشهی بالا-چپ و بهاختیار گوشهی پایین-راست ناحیه را مشخص میکند. موقعیت پیشفرض(0, 0)است.
- read(filename, format=None, *, from_coords=None, to=None, shrink=False)¶
دادههای تصویر را از پروندهای با نام filename در تصویر بخوانید.
format قالب دادههای تصویر در پرونده را مشخص میکند.
from_coords زیرناحیهای مستطیلی از دادههای پرونده تصویر را مشخص میکند که باید به تصویر مقصد کپی شود. این باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح بهصورت
(x1, y1, x2, y2)باشد. اگر فقط x1 و y1 مشخص شوند، ناحیه از(x1, y1)تا گوشه پایین سمت راست تصویر موجود در پرونده ادامه دارد. اگر هر ۴ مختصات داده شوند، آنها گوشههای مقابل مورب ناحیه را مشخص میکنند. اگر from_coords داده نشود، کل تصویر موجود در پرونده خوانده میشود.to مختصات گوشهی بالا سمت چپِ ناحیهای از تصویر را مشخص میکند که دادهها در آن خوانده میشوند. مقدار پیشفرض
(0, 0)است.اگر shrink برابر با true باشد، اندازه تصویر در صورت لزوم کاهش مییابد، بهطوری که ناحیهای که دادههای پرونده در آن خوانده میشوند، در گوشهی پایین سمت راست تصویر قرار گیرد.
اضافه شده در نسخهی 3.13.
- subsample(x, y='', *, from_coords=None)¶
یک
PhotoImageجدید بر پایه این تصویر برمیگرداند، اما فقط از هر x*مین پیکسل در راستای X و هر *y*مین پیکسل در راستای Y استفاده میکند. اگر *y داده نشود، مقدار پیشفرض آن همان مقدار x خواهد بود.from_coords زیرناحیهی مستطیلی از تصویر مبدأ را برای کپیشدن مشخص میکند، همانطور که در متد
copy()آمده است.تغییر یافته در نسخهی 3.13: پارامتر from_coords اضافه شد.
- transparency_get(x, y)¶
اگر پیکسل در مختصات (x، y) کاملاً شفاف باشد،
Trueو در غیر این صورتFalseرا برمیگرداند.اضافه شده در نسخهی 3.8.
- transparency_set(x, y, boolean)¶
پیکسل در مختصات (x، y) را اگر boolean درست باشد، کاملاً شفاف و در غیر این صورت کاملاً کدر کنید.
اضافه شده در نسخهی 3.8.
- write(filename, format=None, from_coords=None, *, background=None, grayscale=False)¶
دادههای تصویر را از تصویر به پروندهای با نام filename مینویسد.
format نام هندلری قالب پرونده تصویری مورد استفاده را مشخص میکند. اگر داده نشود، قالب از پسوند پرونده حدس زده میشود.
from_coords ناحیهی مستطیلی از تصویر را برای نوشته شدن مشخص میکند. این مقدار باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح
(x1, y1, x2, y2)باشد. اگر فقط x1 و y1 مشخص شده باشند، ناحیه از(x1, y1)تا گوشهی پایین سمت راست تصویر گسترش مییابد. اگر هر چهار مختصات داده شوند، آنها دو گوشهی مقابل بهصورت موربِ ناحیه را مشخص میکنند. اگر from_coords داده نشود، کل تصویر نوشته میشود.اگر background مشخص شده باشد، داده حاوی هیچگونه اطلاعات شفافیت نیست؛ در تمام پیکسلهای شفاف، رنگ با رنگ مشخصشده جایگزین میشود.
اگر grayscale درست باشد، دادهها حاوی اطلاعات رنگ نیستند؛ تمام دادههای پیکسل به مقیاس خاکستری تبدیل میشوند.
تغییر یافته در نسخهی 3.13: پارامترهای background و grayscale افزوده شدند.
- zoom(x, y='', *, from_coords=None)¶
یک
PhotoImageجدید برمیگرداند که در آن این تصویر با ضریب x در جهت X و ضریب y در جهت Y بزرگنمایی شده است. اگر y داده نشود، بهطور پیشفرض همان مقدار x را خواهد داشت.from_coords زیرناحیهی مستطیلی از تصویر مبدأ را برای کپیشدن مشخص میکند، همانطور که در متد
copy()آمده است.تغییر یافته در نسخهی 3.13: پارامتر from_coords اضافه شد.
- class tkinter.BitmapImage(name=None, cnf={}, master=None, **kw)¶
یک تصویر دورنگ (نوع تصویر
bitmapدر Tk) که از یک بیتمپ X11 ایجاد شده است. هر پیکسل رنگ پیشزمینه، رنگ پسزمینه، یا هیچچیز را نمایش میدهد (که اثری شفاف ایجاد میکند). ازImageارث میبرد.گزینههای پیکربندی عبارتاند از data یا file (بیتمپ منبع، که بهصورت یک رشته در قالب بیتمپ X11 یا بهصورت نام یک پرونده در همان قالب داده میشود)، maskdata یا maskfile (بیتمپ نقاب، به همان شکلها)، و foreground و background (دو رنگ). برای پیکسلهایی که نقاب آنها صفر است، تصویر هیچ چیزی را نمایش نمیدهد؛ برای سایر پیکسلها، در نقاطی که منبع یک است رنگ پیشزمینه و در نقاطی که منبع صفر است رنگ پسزمینه را نمایش میدهد. اگر background به یک رشته خالی تنظیم شود، پیکسلهای پسزمینه شفاف خواهند بود.
BitmapImageهیچ متدی از خود ندارد، بهجز متدهایی که ازImageبه ارث برده است.
کلاسهای دیگر¶
- class tkinter.Event¶
ظرفی برای ویژگیهای رویدادی که به کالبک متصلشده با
Misc.bind()ارسال میشود. یک نمونه ازEventدارای ویژگیهای زیر است که هر کدام با یکی از فیلدهای رویداد Tk زیربنایی متناظر است؛ بسته به نوع رویداد، ممکن است برخی از ویژگیها روی رشته'??'تنظیم شوند تا نشان داده شود که معنادار نیستند. اتصالها و رویدادها را ببینید.- serial¶
شماره سریال رویداد.
- num¶
دکمهی ماوسی که فشرده یا رها شده است (برای رویدادهای دکمه).
- focus¶
اینکه آیا پنجره فوکوس را دارد یا خیر (برای رویدادهای
EnterوLeave).
- keycode¶
کد کلید (keycode) برای کلیدی که فشرده یا رها شده است.
- state¶
وضعیت رویداد، بهصورت یک عدد (برای بیشتر رویدادها) یا یک رشته (برای رویدادهای
Visibility).
- time¶
برچسب زمانی رویداد، بر حسب میلیثانیه.
- char¶
نویسهی تایپشده، بهصورت یک رشته (برای رویدادهای کلید).
- send_event¶
Trueاگر رویداد از سوی برنامهی دیگری ارسال شده باشد.
- keysym¶
نام نمادین کلیدی که فشرده یا رها شده است.
- widget¶
ابزارکی که رویداد بر آن رخ داده است.
- delta¶
میزان چرخش چرخ ماوس (برای رویدادهای
MouseWheel).
- class tkinter.EventType(*values)¶
یک
enum.StrEnumکه انواع رویداد Tk را برمیشمارد و بهعنوان مقدارEvent.typeاستفاده میشود. اعضای آن، از میان سایر موارد، شاملKeyPress،KeyRelease،ButtonPress،ButtonRelease،Motion،Enter،Leave،FocusIn،FocusOut،Configure،Map،Unmap،Expose،DestroyوMouseWheelهستند.اضافه شده در نسخهی 3.6.
- class tkinter.CallWrapper(func, subst, widget)¶
کمکی داخلی که یک کالبک پایتون را میپوشاند تا بتوان آن را از Tcl فراخوانی کرد. func تابع پایتون است، subst یک تابع اختیاری است که آرگومانهای Tcl را پیشپردازش میکند، و widget ابزارکی است که برای گزارش خطا استفاده میشود. نمونهها بهصورت خودکار توسط
Misc.register()ایجاد میشوند؛ این کلاس معمولاً بهصورت مستقیم استفاده نمیشود.
توابع سطح ماژول¶
- tkinter.Tcl(screenName=None, baseName=None, className='Tk', useTk=False)¶
تابع
Tcl()یک تابع کارخانهای است که شیءای بسیار شبیه به شیء ایجادشده توسط کلاسTkرا ایجاد میکند، با این تفاوت که زیرسیستم Tk را راهاندازی نمیکند. این تابع بیشتر زمانی مفید است که مفسر Tcl را در محیطی هدایت میکنید که نمیخواهید پنجرههای Toplevel اضافی ایجاد کنید، یا نمیتوانید این کار را انجام دهید (مانند سیستمهای Unix/Linux بدون سرور X). برای شیء ایجادشده توسط شیءTcl()، میتوان با فراخوانی متدloadtk()آن، یک پنجرهی Toplevel ایجاد کرد (و زیرسیستم Tk را راهاندازی کرد).
- tkinter.NoDefaultRoot()¶
از ایجاد یک پنجرهی ریشهی پیشفرض ضمنی جلوگیری میکند. پس از آن
tkinterدیگر بهطور خودکار یک ریشهی پیشفرض مشترک ایجاد نمیکند، و عملیاتی که به آن وابستهاند --- مانند ساخت یک ابزارک بدون master صریح --- استثنایRuntimeErrorرا پرتاب میکنند. در برنامههای بزرگتر، این را در مراحل اولیه فراخوانی کنید تا پنجرهی ریشه بهصورت صریح تعیین شود.
- tkinter.mainloop(n=0)¶
حلقه اصلی رویداد Tk را روی پنجره ریشه پیشفرض اجرا کنید تا همه پنجرهها نابود شوند. معادل فراخوانی
Misc.mainloop()روی ریشه پیشفرض است.
- tkinter.getboolean(s)¶
رشتهی بولی Tcl s (یکی از
'1'،'true'،'yes'،'on'و مشابه آنها، یا معادلهای نادرست آنها) را بهboolپایتون تبدیل میکند. برای یک مقدار نامعتبر،TclErrorرا پرتاب میکند.
- tkinter.image_names()¶
نامهای تمام تصاویر موجود در مفسر ریشهی پیشفرض را برمیگرداند.
- tkinter.image_types()¶
انواع تصویر در دسترس (مانند
'photo'و'bitmap') را در مفسر ریشهی پیشفرض برمیگرداند.
هندلرهای پرونده¶
Tk به شما امکان میدهد یک تابع کالبک را ثبت و لغو ثبت کنید؛ این تابع هنگامی که ورودی/خروجی روی یک توصیفگر پرونده امکانپذیر باشد، از mainloop Tk فراخوانی میشود. برای هر توصیفگر پرونده فقط میتوان یک هندلر ثبت کرد. نمونه کد:
import tkinter
widget = tkinter.Tk()
mask = tkinter.READABLE | tkinter.WRITABLE
widget.tk.createfilehandler(file, mask, callback)
...
widget.tk.deletefilehandler(file)
این قابلیت در ویندوز در دسترس نیست.
از آنجا که نمیدانید چند بایت برای خواندن در دسترس است، ممکن است نخواهید از متدهای read() یا readline() در کلاسهای BufferedIOBase یا TextIOBase استفاده کنید، زیرا این متدها بر خواندن تعداد از پیش تعیینشدهای از بایتها اصرار دارند. برای سوکتها، متدهای recv() یا recvfrom() بهخوبی کار میکنند؛ برای سایر پروندهها، از خواندنهای خام یا os.read(file.fileno(), maxbytecount) استفاده کنید.
- Widget.tk.createfilehandler(file, mask, func)¶
تابع کالبک هندلر پرونده func را ثبت میکند. آرگومان file میتواند یا یک شیء دارای متد
fileno()(مانند یک شیء پرونده یا سوکت) باشد، یا یک توصیفگر پرونده از نوع عدد صحیح. آرگومان mask ترکیبی از هر یک از سه ثابت زیر با عملگر OR است. کالبک به صورت زیر فراخوانی میشود:callback(file, mask)
- Widget.tk.deletefilehandler(file)¶
یک هندلر پرونده (file handler) را از ثبت خارج میکند.
ثوابت¶
ثابتهای نمادین زیر در هر دو فضای نام tkinter و tkinter.constants در دسترس هستند.
- tkinter.N¶
- tkinter.S¶
- tkinter.E¶
- tkinter.W¶
- tkinter.NE¶
- tkinter.NW¶
- tkinter.SE¶
- tkinter.SW¶
- tkinter.NS¶
- tkinter.EW¶
- tkinter.NSEW¶
- tkinter.CENTER¶
جهتهای قطبنما (
'n'،'s'،'e'،'w'و قطرها و لبهها) بههمراهCENTER('center')، که بهعنوان مقدارهایی برای گزینههای anchor و sticky و همچنین توسط متدهایی مانندMisc.grid_anchor()استفاده میشوند.
- tkinter.LEFT¶
- tkinter.RIGHT¶
- tkinter.TOP¶
- tkinter.BOTTOM¶
طرفهای گزینهی side برای بستهبند (packer) (به
Pack.pack_configure()مراجعه کنید).
- tkinter.X¶
- tkinter.Y¶
- tkinter.BOTH¶
- tkinter.NONE¶
مقادیر گزینهی fill در بستهبند (packer):
'x'،'y'،'both'یا'none'.
- tkinter.RAISED¶
- tkinter.SUNKEN¶
- tkinter.FLAT¶
- tkinter.RIDGE¶
- tkinter.GROOVE¶
- tkinter.SOLID¶
مقادیر گزینهی relief، که حاشیهی سهبعدی یک ابزارک را کنترل میکند.
- tkinter.HORIZONTAL¶
- tkinter.VERTICAL¶
مقادیر برای گزینهی orient در ابزارکهایی مانند
Scale،ScrollbarوPanedWindow.
- tkinter.CHAR¶
- tkinter.WORD¶
مقادیر گزینهی wrap در ابزارک
Text، برای انتخاب پیچیدن خط بر روی مرزهای نویسه یا واژه.
- tkinter.BASELINE¶
مقدار همترازی متن
'baseline'.
- tkinter.INSIDE¶
- tkinter.OUTSIDE¶
مقادیر برای گزینهی bordermode در جایدهنده (به
Place.place_configure()مراجعه کنید).
- tkinter.INSERT¶
- tkinter.CURRENT¶
- tkinter.END¶
- tkinter.ANCHOR¶
- tkinter.SEL¶
- tkinter.SEL_FIRST¶
- tkinter.SEL_LAST¶
اندیسهای نمادین مورد استفاده در ابزارکهای
Text،Entry،ListboxوCanvas، مانند'insert'(مکاننمای درج)،'current'،'end'،'anchor'و کرانههای انتخاب ('sel.first'و'sel.last').
- tkinter.ALL¶
برچسب ویژه
'all'، که با هر آیتم از یکCanvasیا هر نویسه از یکTextمطابقت دارد (برای مثالcanvas.delete(ALL)).
- tkinter.NORMAL¶
- tkinter.DISABLED¶
- tkinter.ACTIVE¶
- tkinter.HIDDEN¶
مقادیر گزینهی state برای ابزارکها و آیتمهای مختلف.
- tkinter.CASCADE¶
- tkinter.CHECKBUTTON¶
- tkinter.COMMAND¶
- tkinter.RADIOBUTTON¶
- tkinter.SEPARATOR¶
انواع آیتمهای منو، که بهعنوان آرگومان itemType در
Menu.add()وMenu.insert()استفاده میشوند.
- tkinter.SINGLE¶
- tkinter.BROWSE¶
- tkinter.MULTIPLE¶
- tkinter.EXTENDED¶
مقدارهای گزینهی selectmode برای ابزارک
Listbox.
- tkinter.BUTT¶
- tkinter.PROJECTING¶
- tkinter.ROUND¶
- tkinter.BEVEL¶
- tkinter.MITER¶
مقادیر گزینههای capstyle (
'butt'،'projecting'،'round') و joinstyle ('round'،'bevel'،'miter') برای آیتمهای خط درCanvas.
- tkinter.FIRST¶
- tkinter.LAST¶
مقادیر گزینهی arrow برای آیتمهای خط
Canvas، که نشان میدهد کدام انتهاها سرپیکان دارند.
- tkinter.MOVETO¶
- tkinter.SCROLL¶
اولین آرگومانی که یک
Scrollbarبه متدXView.xview()یاYView.yview()مربوط به ابزارک پیمایششده میفرستد.
- tkinter.UNITS¶
- tkinter.PAGES¶
مقادیر آرگومان what برای
XView.xview_scroll()وYView.yview_scroll().