GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing python.github.io — tkinter --- رابط پایتون به Tcl/Tk
|
اندیس |
معنی |
مثال |
|---|---|---|
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 را ببینید.
بسیاری از گزینههای ابزارک مستندشده در بخش ارجاع، مقادیری از تعداد کمی از انواع متداول را میپذیرند که در اینجا توصیف شدهاند. گزینههای استاندارد و انواع آنها در صفحهی راهنمای options(3tk) شرح داده شدهاند.
مقادیر مجاز جهات قطبنما هستند: "n"، "ne"، "e"، "se"، "s"، "sw"، "w"، "nw" و همچنین "center". گزینهی labelanchor در کلاسهای LabelFrame و ttk.LabelFrame مقادیر "en"، "es"، "wn" و "ws" را نیز میپذیرد. گزینهی sticky در مدیر هندسهی شبکه ترکیبی از جهتهای قطبنما مانند "nsew" یا یک رشتهی خالی را میپذیرد.
ده بیتمپ توکار و نامگذاریشده وجود دارد: 'error'، 'gray12'، 'gray25'، 'gray50'، 'gray75'، 'hourglass'، 'info'، 'questhead'، 'question'، 'warning'. در سیستمعامل macOS نیز بیتمپهای زیر در دسترس هستند: 'application'، 'accessory'، 'folder'، 'pfolder'، 'trash'، 'floppy'، 'ramdisk'، 'cdrom'، 'preferences'، 'querydoc'، 'stop'، 'note' و 'caution'. برای مشخص کردن یک پروندهی بیتمپ X، مسیر کامل پرونده را بدهید که پیش از آن یک @ قرار گرفته باشد، مانند "@/usr/contrib/bitmap/gumby.bit".
میتوانید اعداد صحیح ۰ یا ۱، True یا False، یا رشتههای "0"، "1"، "yes"، "no"، "true"، "false"، "on" یا "off" را ارسال کنید. تطبیق رشتهها با صرفنظر از بزرگ و کوچک بودن حروف انجام میشود و یک پیشوند غیرمبهم، مانند "t"، کافی است. هر عدد صحیح غیرصفری به معنای درست است.
این هر شیء فراخوانیپذیری است. بیشتر کالبکها هیچ آرگومانی نمیپذیرند. برای نمونه:
def print_it(): print("hi there") fred["command"] = print_it
برخی گزینهها آن را با آرگومانهایی فراخوانی میکنند، مانند گزینهی command در کلاس Scale که با مقدار جدید فراخوانی میشود.
رنگها را میتوان به صورت نامهای نمادین، مانند "red" یا "light blue"، یا به صورت رشتههایی که مقادیر RGB را در محدودههای ۴ بیتی: "#RGB"، ۸ بیتی: "#RRGGBB"، ۱۲ بیتی: "#RRRGGGBBB" یا ۱۶ بیتی: "#RRRRGGGGBBBB" نشان میدهند، ارائه کرد که در اینجا R ،G و B نمایانگر هر رقم هگز مجاز هستند. کتابخانهی Tk مجموعهی قابلحملی از نامهای نمادین را فراهم میکند که در تمام پلتفرمها در دسترس هستند؛ تطبیق آنها با صرفنظر از بزرگی و کوچکی حروف و فاصلهها انجام میشود، بنابراین "light blue"، "Light Blue" و "lightblue" یک رنگ هستند. فهرست کامل نامها، از جمله نامهای مختص پلتفرمِ رنگهای سیستم فعلی (برای نمونه "systemButtonFace" در ویندوز یا "systemWindowBody" در macOS)، در صفحهی راهنمای colors(3tk) آمده است. متد winfo_rgb() اجزای قرمز، سبز و آبی یک رنگ را برمیگرداند.
تعیین میکند که چگونه یک تصویر و یک متن نمایشدادهشده در یک ابزارک با یکدیگر ترکیب شوند. مقادیر مجاز عبارتند از "none" (نمایش تصویر در صورت وجود، در غیر این صورت متن)، "text"، "image"، "center" (نمایش متن در مرکز تصویر) و "top"، "bottom"، "left"، "right" (نمایش تصویر در بالا، پایین، سمت چپ یا سمت راست متن). ابزارکهای پوستهای تمام این مقادیر را میپذیرند، ابزارکهای کلاسیک همه به جز "text" و "image" را میپذیرند.
نام مکاننما ماوسی که هنگام قرار داشتن اشارهگر روی ابزارک نمایش داده میشود. 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") ارسال میشود. اندازههای قلم با اعداد مثبت بر اساس نقطه (point) اندازهگیری میشوند؛ اندازهها با اعداد منفی بر اساس پیکسل اندازهگیری میشوند. نام یک قلم نامگذاریشده، مانند "TkDefaultFont"، یک نمونه از tkinter.font.Font، یا در X11، نام یک قلم XLFD نیز میتواند استفاده شود.
مقادیر مجاز، رشتههای زیر هستند: "left"، "center" و "right".
مقادیر مجاز عبارتند از "horizontal" و "vertical".
این یک فاصلهی مجاز (مشاهده در بالا) است که در تمام طرفها اعمال میشود، یا دنبالهای از حداکثر چهار فاصله است که پُرکنندهی چپ، بالا، راست و پایین را مشخص میکند. اگر کمتر از چهار مقدار مشخص شود، پُرکنندهی پایین به صورت پیشفرض از مقدار بالایی، پُرکنندهی راست از چپ، و پُرکنندهی بالا از چپ پیروی میکند. این گزینه فقط توسط ابزارکهای پوستهبندیشده پشتیبانی میشود.
برای گزینهی scrollregion در Canvas استفاده میشود. این یک رشته با چهار عنصر جداشده با فاصله است که هر کدام یک فاصلهی مجاز (مشاهده در بالا) یا دنبالهای از چهار عنصر اینچینی است. برای مثال: "2 3 4 5"، (2, 3, 4, 5)، "3i 2i 4.5i 2i" و "3c 2c 4c 10.43c" همگی ناحیههای مجازی هستند.
مشخص میکند که سبک حاشیه یک ابزارک چه خواهد بود. مقادیر مجاز عبارتاند از: "raised"، "sunken"، "flat"، "groove"، "ridge" و "solid".
این تقریباً همیشه متد set()یک ابزارک نوار پیمایش است، اما میتواند هر متدی از یک ابزارک باشد که یک آرگومان میپذیرد.
مقادیر مجاز عبارتند از "normal"، "disabled" و بسته به ابزارک، همچنین "active"، "hidden" (برای آیتمهای Canvas) یا "readonly" (برای Entry، Spinbox و ابزارکهای پوستهبندیشده). ابزارکهای پوستهبندیشده علاوه بر این دارای مجموعهی عمومیتری از وضعیتها هستند که با ttk.Widget.state دستکاری میشوند.
برای ابزارک Text و برچسبهای آن باید یکی از مقادیر "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 دارای متدها و گزینههایی هستند که به موقعیتهای نویسه در متن نمایشدادهشده اشاره میکنند. هر زمان که به یک اندیس نیاز باشد، میتوانید موارد زیر را وارد کنید:
عدد صحیحی که به موقعیت عددی یک نویسه اشاره دارد و از ابتدای متن، با شروع از ۰ شمرده میشود؛
رشتهی "anchor"، که به نقطهی لنگر انتخاب اشاره دارد؛ این نقطه با متدهای انتخاب ابزارک تنظیم میشود؛
رشته "end"، که به موقعیت درست پس از آخرین نویسه اشاره دارد؛
رشتهی "insert"، که به نویسهی درست پس از مکاننمای درج اشاره دارد؛
رشتههای "sel.first" و "sel.last"، که به اولین نویسهی انتخاب و موقعیت درست پس از آخرین نویسه اشاره دارند (اگر انتخابی وجود نداشته باشد، استفاده از اینها خطا است)؛
رشتهای متشکل از @ که پس از آن یک عدد صحیح آمده است، مانند "@6"، که در آن عدد صحیح بهعنوان مختصات پیکسلی x در دستگاه مختصات ورودی تفسیر میشود و نویسهای را انتخاب میکند که آن نقطه را در بر میگیرد.
نمادگذاری اندیس برای ابزارکهای Text بسیار غنی است و بهترین توصیف آن در صفحات راهنمای Tk آمده است.
برخی گزینهها و متدهای مربوط به منوها، آیتمهای خاصی از منو را دستکاری میکنند. هر زمان که برای یک گزینه یا پارامتر به اندیس منو نیاز باشد، میتوانید موارد زیر را وارد کنید:
عدد صحیحی که به موقعیت عددی ورودی در ابزارک اشاره دارد، از بالا شمرده میشود و از ۰ آغاز میشود؛
رشته "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 مراجعه کنید.
استثنایی که هنگام شکست یک فراخوانی به مفسر Tcl پرتاب میشود، برای مثال هنگامی که به یک ابزارک گزینهای ناشناخته یا مقداری نامعتبر داده شود.
کلاس Misc یک کلاس میکساین است که Tk آن را به ارث میبرد و هر ابزارک نیز از طریق BaseWidget آن را به ارث میبرد. این کلاس مجموعه بزرگی از متدهای مشترک میان همهی اشیای Tk را فراهم میکند: پرسوجوی اطلاعات پنجره، مدیریت اتصالهای رویداد و حلقهی رویداد، کنترل تمرکز صفحهکلید و گرفتن اشارهگر، دسترسی به گزینش، بریدهدان و پایگاه دادهی گزینهها، و خدمات گوناگون سودمندی و دروننگری. از آنجا که این متدها به ارث برده میشوند، برای هر ابزارک و برای شیء برنامهی Tk در دسترس هستند و به جای تکرار برای هر ابزارک، در اینجا یک بار مستند شدهاند.
مقدار فعلی گزینهی پیکربندی با نام key برای این ابزارک را بهصورت یک رشته برمیگرداند. عبارت widget[key] معادل است و میتوانید بهجای آن از این عبارت استفاده کنید.
گزینههای پیکربندی ابزارک را پرسوجو یا اصلاح میکند. بدون آرگومان، یک دیکشنری برمیگرداند که هر نام گزینهی موجود را به یک تاپل توصیفکنندهی آن (نام آن، نام منبع X، کلاس منبع X، مقدار پیشفرض و مقدار فعلی) نگاشت میکند. اگر یک نام گزینه بهصورت یک رشته داده شود، فقط تاپل همان گزینه را برمیگرداند. اگر یک یا چند آرگومان کلیدواژهای داده شود، یا یک دیکشنری بهعنوان cnf ارسال شود، هر گزینهی نامبرده را به مقدار متناظر تنظیم میکند؛ عبارت widget[key] = value یک گزینه را به همین روش تنظیم میکند.
config() نام مستعار configure() است.
فهرستی از نامهای تمام گزینههای پیکربندی این ابزارک را برمیگرداند.
رشتهی s را به عنوان یک مقدار بولی Tcl تفسیر کرده و bool متناظر را برمیگرداند. Tcl مقادیری مانند '1'، '0'، 'yes'، 'no'، 'true'، 'false'، 'on' و 'off' را میپذیرد. اگر s یک مقدار بولی معتبر نباشد، استثنای ValueError را بالا بیاورید.
رشتهی s را بهعنوان یک عدد ممیز شناور Tcl تفسیر میکند و آن را بهصورت یک float برمیگرداند. اگر s یک عدد معتبر نباشد، ValueError پرتاب میشود.
اضافه شده در نسخهی 3.5.
رشته s را بهعنوان یک عدد صحیح Tcl تفسیر میکند و آن را بهصورت یک int برمیگرداند. اگر s یک عدد صحیح معتبر نباشد، ValueError پرتاب میشود.
مقدار متغیر سراسری Tcl به نام name را برمیگرداند.
متغیر سراسری Tcl به نام name را برابر با value قرار دهید.
متدهای getvar() و setvar() دسترسی مستقیم به متغیرهای Tcl را فراهم میکنند. در بیشتر کدها، بهجای آن از زیرکلاسی از Variable مانند StringVar یا IntVar استفاده خواهید کرد، که یک متغیر Tcl را دربر میگیرد و مقدار آن را به یک نوع پایتون و بالعکس تبدیل میکند.
شیء فراخوانیپذیر پایتون func را بهعنوان یک فرمان Tcl ثبت میکند و نام فرمان جدید را بهصورت یک رشته برمیگرداند. هر زمان که Tcl آن فرمان را فراخوانی کند، func فراخوانی میشود؛ اگر subst داده شده باشد، ابتدا روی آرگومانهای فرمان اعمال میشود. این سازوکاری است که بهصورت داخلی برای تبدیل کالبکهای پایتون به نامهای فرمانی که به گزینههای Tk مانند command داده میشوند، استفاده میشود. مگر اینکه needcleanup برابر false باشد، فرمان بهطور خودکار هنگام نابود شدن ابزارک حذف میشود.
تغییر یافته در نسخهی 3.13: آرگومانهای ارسالشده به func دیگر به رشته تبدیل نمیشوند.
فرمان Tcl با نام name را حذف میکند، مانند فرمانی که پیشتر توسط register() برگردانده شده است.
نمونهی ابزارک متناظر با نام مسیر Tk بهنام name را برمیگرداند.
فرمان Tcl cmd را، به همراه args دادهشده، به مفسر Tcl ثبتشده با نام interp ارسال کنید و نتیجهی آن را برگردانید. این قابلیت در همهی سکوها در دسترس نیست.
این ابزارک و همهی ابزارکهای زیرمجموعهی آن را نابود کنید و دستورات Tcl مرتبط با آنها را حذف کنید.
این ابزارک را در ترتیب پشته بالا بیاورید تا روی ابزارکهای همسطح خود رسم شود. اگر aboveThis داده شود، در عوض ابزارک درست بالای آن در ترتیب پشته جابهجا میشود.
lift() نام مستعاری از tkraise() است.
این ابزارک را در ترتیب پشتهای (stacking order) پایین ببرید تا زیر همسطحهای خود ترسیم شود. اگر belowThis داده شده باشد، در عوض ابزارک دقیقاً زیر آن در ترتیب پشتهای جابهجا میشود.
tkraise()/lift() و lower() توسط ابزارک Canvas بازنویسی شدهاند؛ در این ابزارک، آنها بهجای آن، آیتمهای Canvas را دوباره پشتهبندی میکنند.
نام همهی تصاویری را که در حال حاضر در مفسر Tcl وجود دارند، برمیگرداند.
این مورد توسط ابزارک Text بازنویسی میشود، که در آن image_names() در عوض نام تصاویر تعبیهشدهی آن را برمیگرداند.
انواع تصویر در دسترس را برمیگرداند، مانند 'photo' و 'bitmap'.
لنگر را تنظیم کنید؛ این لنگر تعیین میکند که وقتی ظرف بزرگتر از شبکه است و هیچ ردیف یا ستونی وزن غیرصفر ندارد، شبکه در کجای این ظرف قرار گیرد. anchor یکی از رشتههای لنگر معمول است، مانند 'nw' (پیشفرض) یا 'center'. اگر این متد بدون آرگومان فراخوانی شود، هیچ تأثیری ندارد.
anchor() نام مستعار grid_anchor() است.
اضافه شده در نسخهی 3.3.
جعبهی محدودکننده یک ناحیه از شبکهی چیدهشده در این ظرف را بر حسب پیکسل، بهصورت یک ۴تایی (xoffset, yoffset, width, height) برمیگرداند. بدون آرگومان، جعبهی محدودکننده کل شبکه برگردانده میشود. اگر column و row داده شده باشند، جعبه از سلول در ردیف ۰ و ستون ۰ تا آن سلول امتداد دارد؛ اگر col2 و row2 نیز داده شده باشند، از سلول (column، row) تا سلول (col2، row2) امتداد دارد.
bbox() نام مستعار grid_bbox() است، بهجز در Canvas، Listbox، Spinbox، Text، ttk.Entry و ttk.Treeview، که متد bbox() خود را فراهم میکنند.
ویژگیهای ستون (یا ستونهای) index از شبکهی مدیریتشده توسط این ظرف را بپرسید یا تنظیم کنید. index میتواند یک شماره ستون باشد؛ هنگام تنظیم گزینهها، همچنین میتواند فهرستی از شمارههای ستون، رشتهی 'all' برای تأثیر بر همهی ستونها، یا یک ابزارک فرزند باشد که ستونهای اشغالشدهی آن تحت تأثیر قرار میگیرند. گزینههای پشتیبانیشده عبارتند از:
حداقل اندازهی ستون، بر حسب پیکسل.
یک عدد صحیح که تعیین میکند چه مقدار از فضای اضافی به ستون اختصاص داده شود. وزن 0 ستون را در اندازه درخواستی خود نگه میدارد، و ستونی با وزن ۲ دو برابر سریعتر از ستونی با وزن ۱ رشد میکند.
نام یک گروه یکنواخت (uniform group). ستونهایی که یک نام گروه غیرخالی مشترک دارند، در اندازههایی نگه داشته میشوند که دقیقاً متناسب با وزنهایشان است.
فضای اضافی، بر حسب پیکسل، که هنگام محاسبهی اندازهی ستون، به بزرگترین ابزارک موجود در ستون افزوده میشود.
با یک نام گزینه، مقدار آن گزینه را برمیگرداند؛ بدون هیچ گزینهای، یک دیکشنری از همهی آنها را برمیگرداند.
columnconfigure() نام مستعاری از grid_columnconfigure() است.
ویژگیهای ردیف (یا ردیفهای) index از شبکه مدیریتشده توسط این ظرف را پرسوجو یا تنظیم کنید. تفسیر index همانند grid_columnconfigure() است و گزینههای پشتیبانیشده (minsize، weight، uniform و pad) یکسان هستند، با این تفاوت که بهجای ستون، بر ردیف اعمال میشوند.
rowconfigure() نام مستعاری از grid_rowconfigure() است.
(column, row) مربوط به سلول شبکهای که پیکسلی در موقعیت (x, y) را در بر دارد، برمیگرداند؛ این موقعیت بر حسب پیکسل نسبت به این ظرف داده شده است. برای موقعیتهای بالاتر از شبکه یا سمت چپ آن، برای مختصات متناظر -1 برگردانده میشود.
انتشار هندسه (geometry propagation) را برای این ظرف، وقتی فرزندان خود را با مدیر هندسهی grid مدیریت میکند، فعال یا غیرفعال کنید. وقتی flag درست باشد، ظرف اندازهی خود را تغییر میدهد تا با اندازههای درخواستشدهی فرزندان خود متناسب شود؛ وقتی نادرست باشد، اندازهی آن تحت کنترل شما باقی میماند. اگر بدون آرگومان فراخوانی شود، تنظیم فعلی را بهصورت یک مقدار بولی برمیگرداند.
اندازهی شبکهی مدیریتشده توسط این ظرف را بهصورت یک تاپل (columns, rows) برمیگرداند.
size() نام مستعاری از grid_size() است، بهجز در ابزارک Listbox، که متد size() خود را ارائه میدهد.
فهرستی از ابزارکهای فرزند مدیریتشده در شبکهی این ظرف را برمیگرداند، بهطوری که آخرین ابزارک مدیریتشده در ابتدا قرار دارد. اگر row یا column داده شود، فقط ابزارکهای فرزند موجود در آن ردیف یا ستون برگردانده میشوند.
مشابه grid_slaves(): ابزارکهای فرزندی را که در شبکه (grid) این ظرف مدیریت میشوند برمیگرداند، که به صورت اختیاری به یک row یا column مشخص محدود میشود.
اضافه شده در نسخهی 3.15.
فعال یا غیرفعال کردن انتشار هندسه برای این ظرف (container) هنگامی که فرزندان خود را با مدیر هندسهی pack مدیریت میکند. وقتی flag درست باشد، ظرف اندازهی خود را متناسب با اندازههای درخواستی فرزندان تغییر میدهد؛ وقتی نادرست باشد، اندازهی آن تحت کنترل شما باقی میماند. در صورت فراخوانی بدون آرگومان، تنظیم فعلی را بهصورت یک مقدار بولی برمیگرداند.
propagate() نام مستعاری از pack_propagate() است.
فهرستی از ابزارکهای فرزند مدیریتشده توسط این ظرف با مدیر چیدمان pack را به ترتیب چیدمان pack برمیگرداند.
slaves() نام مستعار pack_slaves() است.
مشابه pack_slaves(): ابزارکهای فرزندی را که توسط این ظرف با مدیر هندسهی بستهبندی (pack) مدیریت میشوند، به ترتیب بستهبندی، برمیگرداند.
content() نام مستعاری برای pack_content() است.
اضافه شده در نسخهی 3.15.
فهرستی از ابزارکهای فرزند این ظرف را که با مدیر چیدمان place مدیریت میشوند، برمیگرداند.
مشابه place_slaves(): ابزارکهای فرزندی را که توسط این ظرف با مدیر هندسهی مکان (place) مدیریت میشوند برمیگرداند.
اضافه شده در نسخهی 3.15.
متدهایی که دارای پیشوندهای bind و unbind هستند، الگوهای رویداد را به فراخوانیهای بازگشتی (callback) متصل کرده و آن اتصالات را حذف میکنند.
الگوی رویداد sequence را در این ابزارک به شیء فراخوانیپذیر func متصل کنید.
sequence یک الگوی رویداد است، مانند '<Button-1>' (یک کلیک ماوس) یا '<KeyPress-a>'، و بهصورت اختیاری میتواند الحاقی از چندین الگوی مشابه باشد که باید با فاصلهای کوتاه پس از یکدیگر رخ دهند. هنگامی که رویداد رخ میدهد، func با یک نمونه از Event که رویداد را توصیف میکند، بهعنوان تنها آرگومان فراخوانی میشود؛ اگر func رشتهی 'break' را برگرداند، هیچ پیوند دیگری برای رویداد فراخوانی نمیشود.
اگر add درست باشد، func به توابعی که از قبل به sequence متصل شدهاند اضافه میشود؛ در غیر این صورت، جایگزین آنها میشود. این اتصال تنها برای این ابزارک اعمال میشود.
bind() یک شناسهی رشتهای (یک funcid) برمیگرداند که بعداً میتوان آن را به unbind() فرستاد تا اتصال را بدون نشت دستور Tcl مرتبط حذف کرد.
اگر func حذف شود، مقیدسازیهای کنونی مرتبط با sequence را برمیگرداند؛ اگر sequence نیز حذف شود، فهرستی از همه دنبالههایی را که برای آنها مقیدسازیهایی روی این ابزارک وجود دارد برمیگرداند.
مانند bind()، اما func را به برچسب مقیدسازی className متصل میکند، نه به یک ابزارک واحد، تا مقیدسازی به هر ابزارکی که آن برچسب را دارد اعمال شود. className معمولاً نام یک کلاس ابزارک است، مانند 'Button'، که در این صورت مقیدسازی بر همه ابزارکهای آن کلاس اثر میگذارد. مجموعه برچسبهای مقیدسازی برای یک ابزارک را میتوان با bindtags() بررسی و تغییر داد.
آرگومانهای باقیمانده و مقدار بازگشتی همانند bind() هستند.
مانند bind()، اما func را به برچسب مقیدسازی ویژهی 'all' متصل میکند، تا این مقیدسازی به تمام ابزارکهای برنامه اعمال شود.
آرگومانهای باقیمانده و مقدار بازگشتی همانند bind() هستند.
مقیدسازیهای مربوط به الگوی رویداد sequence را روی این ابزارک حذف میکند.
اگر funcid داده شود، فقط تابع شناساییشده توسط آن (مقداری که از فراخوانی قبلی bind() بازگشته است) حذف میشود و دستور Tcl مرتبط با آن حذف میگردد. در غیر این صورت، تمام پیوندهای sequence از بین میروند و آن را بیپیوند باقی میگذارند.
تغییر یافته در نسخهی 3.13: اگر funcid داده شود، فقط همان کالبک از حالت مقید خارج میشود؛ سایر کالبکهای مقید به sequence حفظ میشوند.
تمام اتصالهای الگوی رویداد sequence را از برچسب اتصال className حذف میکند. bind_class() را ببینید.
تمام اتصالهای الگوی رویداد sequence را از برچسب اتصال ویژه 'all' حذف کنید. bind_all() را ببینید.
اگر tagList حذف شود، یک تاپل از برچسبهای اتصال مرتبط با این ابزارک برمیگرداند. هنگامی که یک رویداد در یک ابزارک رخ میدهد، آن رویداد بهترتیب به هر یک از برچسبهای اتصال ابزارک اعمال میشود، و برای هر برچسب، خاصترین اتصال منطبق اجرا میشود. بهطور پیشفرض، یک ابزارک دارای چهار برچسب اتصال است: نام مسیر خود، کلاس ابزارک آن، نام مسیر نزدیکترین نیاک سطح بالای آن، و 'all'، به همین ترتیب.
اگر tagList داده شود، باید دنبالهای از رشتهها باشد؛ برچسبهای اتصال ابزارک به عناصر آن تنظیم میشوند که ترتیب ارزیابی اتصالها را تعیین میکند.
متدهای دارای پیشوند event_، رویدادهای مجازی را تعریف میکنند و رویدادها را بهصورت برنامهای تولید میکنند.
رویداد مجازی virtual را، که نام آن به شکل '<<Paste>>' است، با هر یک از الگوهای رویداد فیزیکی دادهشده توسط sequences مرتبط کنید، تا هر زمان که هر یک از آنها رخ دهد، رویداد مجازی فعال شود. اگر virtual از قبل تعریف شده باشد، دنبالههای جدید به دنبالههای موجود آن افزوده میشوند.
هر یک از sequences را از آنهایی که با رویداد مجازی virtual مرتبط هستند، حذف میکند. دنبالههایی که در حال حاضر با virtual مرتبط نیستند، نادیده گرفته میشوند. اگر هیچ sequences داده نشود، همهی دنبالههای رویداد فیزیکی حذف میشوند، بهطوری که virtual دیگر راهاندازی نمیشود.
دنبالهی رویداد sequence را روی این ابزارک تولید کنید و ترتیبی دهید که درست همانطور پردازش شود که گویی از سامانهی پنجرهای آمده است. sequence باید یک الگوی رویداد واحد باشد، مانند '<Button-1>' یا '<<Paste>>'، نه الحاق چندین الگو. آرگومانهای کلیدواژهای فیلدهای اضافی رویداد را مشخص میکنند، برای مثال x و y برای موقعیت اشارهگر، یا when برای کنترل زمان پردازش رویداد؛ برای فهرست کامل به صفحهی راهنمای event در Tk مراجعه کنید.
اگر virtual حذف شود، یک تاپل از تمام رویدادهای مجازی که در حال حاضر تعریف شدهاند را برمیگرداند. اگر virtual داده شود، یک تاپل از دنبالههای رویداد فیزیکی که در حال حاضر با آن مرتبط هستند را برمیگرداند، یا اگر تعریف نشده باشد، یک تاپل خالی برمیگرداند.
متدهای دارای پیشوند after، کالبکها را برای اجرا پس از یک تأخیر یا زمانی که برنامه بیکار است زمانبندی میکنند.
شیء فراخوانیپذیر func را زمانبندی میکند تا پس از ms میلیثانیه فراخوانی شود، بهطوری که args و kw بهعنوان آرگومانهای جایگاهی و کلیدواژهای به آن ارسال شوند. شناسهای برمیگرداند که میتوان آن را به after_cancel() ارسال کرد تا فراخوانی لغو شود.
اگر func حذف شود، در عوض به مدت ms میلیثانیه متوقف میشود در آن مدت هیچ رویدادی را پردازش نمیکند و None را برمیگرداند.
تغییر یافته در نسخهی 3.10: func اکنون میتواند هر شیء فراخوانیپذیر باشد، نه فقط یک تابع.
تغییر یافته در نسخهی 3.14: آرگومانهای کلیدواژهای اکنون به func ارسال میشوند.
کالبکی را که قبلاً با after() یا after_idle() زمانبندی شده است، لغو میکند. id باید شناسهای باشد که توسط یکی از آن متدها برگردانده شده است؛ ارسال مقداری که چنین شناسهای نباشد، باعث پرتاب ValueError میشود. اگر کالبک قبلاً اجرا یا لغو شده باشد، این کار اثری ندارد.
تغییر یافته در نسخهی 3.7: ارسال None (یا هر مقدار کاذب) بهعنوان id اکنون باعث پرتاب ValueError میشود.
زمانبندی میکند که شیء فراخوانیپذیر func، همراه با args و kw که به آن ارسال میشوند، در دفعهی بعدی که حلقهی اصلی Tk بیکار شود فراخوانی شود، یعنی زمانی که رویداد دیگری برای پردازش نداشته باشد. یک شناسه برمیگرداند که میتوان آن را به after_cancel() ارسال کرد تا فراخوانی لغو شود.
تغییر یافته در نسخهی 3.14: آرگومانهای کلیدواژهای اکنون به func ارسال میشوند.
اگر id ذکر نشود، یک تاپل از شناسههای تمام کالبکهایی را که در حال حاضر با after() و after_idle() برای این مفسر زمانبندی شدهاند، برمیگرداند.
اگر id داده شده باشد، باید کالبکی را شناسایی کند که هنوز اجرا یا لغو نشده باشد، و مقدار بازگشتی یک تاپل (script, type) است، که در آن script به تابعی اشاره میکند که قرار است فراخوانی شود و type یا 'idle' است یا 'timer'. اگر id وجود نداشته باشد، TclError پرتاب میشود.
اضافه شده در نسخهی 3.13.
وارد حلقهی رویداد Tk شوید، که رویدادها را پردازش میکند تا همهی پنجرهها از بین بروند. این معمولاً یک بار، روی پنجرهی ریشه، برای اجرای برنامه فراخوانی میشود.
از مفسر Tcl خارج شوید، که باعث میشود mainloop() بازگشت کند.
وارد حلقه رویداد میشود تا همه رویدادهای در انتظار، از جمله کالبکهای بیکار، پردازش شوند. این کار نمایش را بهروز میکند و هر رویدادی را که از قبل در صف قرار دارد، مدیریت میکند، سپس بازمیگردد.
وارد حلقه رویداد میشود تا همه کالبکهای بیکارِ در انتظار فراخوانی شوند. این کار نمایش پنجرهها را بهروزرسانی میکند، برای مثال پس از تغییرات هندسی، اما رویدادهای ناشی از کاربر را پردازش نمیکند.
منتظر بمانید تا متغیر Tcl با نام name تغییر کند؛ در این میان به پردازش رویدادها ادامه دهید تا برنامه پاسخگو بماند. name معمولاً نمونهای از Variable است، مانند IntVar یا StringVar.
waitvar() نام مستعاری از wait_variable() است.
صبر کنید تا window تخریب شود، در این میان به پردازش رویدادها ادامه دهید. اگر window حذف شود، از این ابزارک استفاده میشود. این معمولاً برای صبر کردن تا پایان تعامل کاربر با یک جعبهی محاوره استفاده میشود.
صبر کنید تا وضعیت نمایان بودن window تغییر کند، برای مثال هنگامی که برای نخستین بار روی صفحه ظاهر میشود؛ در این میان به پردازش رویدادها ادامه دهید. اگر window داده نشود، از این ابزارک استفاده میشود. این بهطور معمول برای صبر کردن تا نمایان شدن پنجرهای که بهتازگی ایجاد شده، پیش از انجام عملیات روی آن استفاده میشود.
متدهای دارای پیشوند focus_، فوکوس صفحهکلید را مدیریت میکنند.
تمرکز ورودی صفحهکلید برای نمایشگر این ابزارک را به این ابزارک هدایت میکند. اگر برنامه در حال حاضر تمرکز ورودی را در نمایشگر این ابزارک نداشته باشد، این ابزارک بهعنوان پنجره دارای تمرکز برای سطح بالای خود به خاطر سپرده میشود، و دفعه بعدی که مدیر پنجره تمرکز را به سطح بالا بدهد، تمرکز به آن هدایت مجدد میشود. focus() نام مستعاری از focus_set() است، بهجز برای ابزارکهای Canvas و ttk.Treeview، که متد focus() خودشان را ارائه میدهند.
تمرکز ورودی صفحهکلید را به این ابزارک هدایت کنید، حتی اگر برنامه در حال حاضر تمرکز ورودی برای نمایشگر آن ابزارک را نداشته باشد. این متد باید بهندرت، اگر اصلاً، استفاده شود؛ بهطور معمول یک برنامه باید منتظر بماند تا مدیر پنجره تمرکز را به آن بدهد، نه اینکه آن را تصاحب کند.
ابزارکی را برمیگرداند که در حال حاضر تمرکز صفحهکلید را در برنامه دارد، یا اگر هیچ ابزارکی در برنامه تمرکز ندارد، None برمیگرداند. برای کارکرد صحیح با چندین نمایشگر، از focus_displayof() استفاده کنید.
ابزارکی را که در حال حاضر فوکوس صفحهکلید را روی نمایشگری که این ابزارک در آن قرار دارد دارد، برمیگرداند، یا اگر هیچ ابزارکی در برنامه فوکوس را روی آن نمایشگر نداشته باشد، None برمیگرداند.
آخرین ابزارکی را که در میان تمام ابزارکهای موجود در همان سطح بالای این ابزارک، تمرکز صفحهکلید را داشته است، برمیگرداند؛ این ابزارک، همان ابزارکی است که دفعهی بعدی که مدیر پنجره تمرکز را به سطح بالا بدهد، تمرکز را دریافت خواهد کرد. اگر هیچ ابزارکی در آن سطح بالا هرگز تمرکز را نداشته باشد، یا آخرین ابزارک دارای تمرکز حذف شده باشد، خود سطح بالا برگردانده میشود.
Tk را بازپیکربندی کنید تا از یک مدل فوکوس ضمنی استفاده کند که در آن هرگاه مکاننما ماوس وارد یک ابزارک شود، فوکوس روی آن قرار میگیرد. پس از فعالسازی، نمیتوان آن را بهآسانی غیرفعال کرد.
ابزارک بعدی پس از این ابزارک را در ترتیب پیمایش با صفحهکلید برمیگرداند، یا اگر وجود نداشته باشد، None را برمیگرداند. ترتیب پیمایش ابتدا به فرزند بعدی میرود، سپس بهصورت بازگشتی به فرزندان آن فرزند، و سپس به همنیای بعدی که در ترتیب پشتهبندی بالاتر است میرود. اگر گزینهی takefocus یک ابزارک روی 0 تنظیم شده باشد، از آن ابزارک صرفنظر میشود. این متد در اتصالهای پیشفرض برای کلید Tab استفاده میشود.
ابزارک قبلی را که پیش از این ابزارک در ترتیب پیمایش صفحهکلید قرار دارد، برمیگرداند، یا اگر موردی وجود نداشته باشد None را برمیگرداند. برای چگونگی تعریف این ترتیب، tk_focusNext() را ببینید. این متد در اتصالهای پیشفرض برای کلید Shift-Tab استفاده میشود.
متدهای دارای پیشوند grab_، گرفتن ورودی (input grab) را که تمام رویدادهای ورودی را به یک ابزارک هدایت میکند، تنظیم و پرسوجو میکنند.
یک تصرف محلی (grab) روی این ابزارک تنظیم کنید. یک تصرف، رویدادهای اشارهگر را به این ابزارک و زیرمجموعههای آن محدود میکند: هنگامی که اشارهگر خارج از زیردرخت ابزارک باشد، فشار و رها شدن دکمه و حرکت اشارهگر به ابزارک متصرف گزارش داده میشوند و پنجرههای خارج از زیردرخت تا زمانی که تصرف آزاد نشده است غیرفعال میشوند. یک تصرف محلی فقط بر برنامهای که تصرف را انجام داده است اثر میگذارد. هر تصرفی که این برنامه پیشتر روی نمایشگر ابزارک تنظیم کرده باشد، بهطور خودکار آزاد میشود. تنظیم یک تصرف، روش معمول برای مودال (modal) کردن یک پنجرهی محاورهای است: تا زمانی که تصرف برقرار است، کاربر نمیتواند با پنجرههای دیگر برنامه تعامل کند.
یک گرفتن سراسری (global grab) روی این ابزارک تنظیم کنید. گرفتن سراسری مانند گرفتن محلی (local grab) تنظیمشده توسط grab_set() است، اما دسترسی تمام برنامههای دیگر روی صفحه را مسدود میکند، بهطوریکه تنها زیردرخت این ابزارک به رویدادهای اشارهگر حساس است و صفحهکلید را نیز میگیرد. با احتیاط استفاده کنید: از آنجا که برنامههای دیگر تا زمانی که آزاد نشود، رویدادها را دریافت نمیکنند، بهسادگی ممکن است با یک گرفتن سراسری، نمایشگر غیرقابلاستفاده شود.
اگر گرفتن (grab) روی این ابزارک وجود دارد، آن را آزاد کنید؛ در غیر این صورت هیچ کاری انجام ندهید.
ابزارکی را که هماکنون گرفتن (grab) را در این برنامه برای نمایشگر این ابزارک در اختیار دارد، برگردانید، یا اگر چنین ابزارکی وجود ندارد، None را برگردانید.
اگر در حال حاضر هیچ تصرفی (grab) روی این ابزارک تنظیم نشده باشد، None را برمیگرداند؛ در صورت تنظیم تصرف محلی، "local" یا در صورت تنظیم تصرف سراسری، "global" را برمیگرداند.
متدهایی با پیشوند selection_، انتخاب X را بازیابی و مدیریت میکنند.
گزینش X را پاک میکند، بهطوری که دیگر هیچ پنجرهای مالک آن نباشد. گزینشی که باید پاک شود با آرگومان کلیدواژهای selection مشخص میشود؛ این آرگومان یک نام اتم مانند 'PRIMARY' یا 'CLIPBOARD' است و پیشفرض آن PRIMARY است. آرگومان کلیدواژهای displayof نام ابزارکی را مشخص میکند که نمایشگر مورد عمل را تعیین میکند، و پیشفرض آن همین ابزارک است.
این رفتار در ابزارکهای Entry، Listbox و Spinbox لغو میشود؛ در این ابزارکها، selection_clear() بهجای آن، انتخاب خود ابزارک را پاک میکند.
محتوای گزینش جاری X را برمیگرداند. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند و مقدار پیشفرض آن PRIMARY است. آرگومان کلیدواژهای type قالبی را که داده باید در آن برگردانده شود (هدف تبدیل دلخواه) مشخص میکند: یک نام اتم (atom) مانند 'STRING' یا 'FILE_NAME'؛ مقدار پیشفرض آن STRING است، مگر در X11، که ابتدا UTF8_STRING امتحان میشود و STRING بهعنوان جایگزین استفاده میشود. آرگومان کلیدواژهای displayof نام ابزارکی را مشخص میکند که نمایشگر را برای واکشی گزینش تعیین میکند، و پیشفرض آن همین ابزارک است.
command را بهعنوان یک هندلر ثبت کنید تا گزینش X را که این ابزارک مالک آن است، هنگامی که برنامهی دیگری آن را درخواست میکند، تأمین کند. هنگامی که گزینش بازیابی میشود، command با دو آرگومان فراخوانی میشود: آفست نویسهی آغازین و حداکثر تعداد نویسههای قابل بازگرداندن، و باید حداکثر همان تعداد نویسه از گزینش را که از آن آفست شروع میشود، بازگرداند؛ برای گزینشهای بسیار طولانی، این فرمان بهطور مکرر با آفستهای فزاینده فراخوانی میشود. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند (پیشفرض PRIMARY) و آرگومان کلیدواژهای type قالب گزینشی را که مدیر تأمین میکند، مشخص میکند (مانند 'STRING' یا 'FILE_NAME'، پیشفرض STRING).
این ابزارک را مالک گزینش X در نمایشگر آن میکند. به مالک پیشین، در صورت وجود، اطلاع داده میشود که گزینش را از دست داده است. آرگومان کلیدواژهای selection نام گزینش را مشخص میکند و مقدار پیشفرض آن PRIMARY است.
ابزارکی در این برنامه را برمیگرداند که مالک گزینش X در نمایشگر حاوی این ابزارک است، یا اگر هیچ ابزارکی در این برنامه مالک گزینش نباشد، None برمیگرداند. آرگومان کلیدواژهای selection نام گزینش را تعیین میکند و مقدار پیشفرض آن PRIMARY است. آرگومان کلیدواژهای displayof ابزارکی را تعیین میکند که نمایشگر مورد پرسوجو را مشخص میکند، و مقدار پیشفرض آن این ابزارک است.
متدهایی که پیشوند clipboard_ دارند، کلیپبورد را مدیریت میکنند.
string را به کلیپبورد Tk اضافه کنید و مالکیت کلیپبورد را در نمایش این ابزارک کسب کنید. پیش از افزودن، کلیپبورد باید با clipboard_clear() خالی شود؛ همه افزودنها باید پیش از بازگشت به حلقه رویداد کامل شوند تا کلیپبورد بهصورت اتمی بهروزرسانی شود. آرگومان کلیدواژهای type قالب داده را مشخص میکند، یعنی یک نام اتم (atom) مانند 'STRING' یا 'FILE_NAME' (پیشفرض STRING)، و آرگومان کلیدواژهای format بازنمایی را مشخص میکند که برای انتقال آن استفاده میشود (پیشفرض STRING). آرگومان کلیدواژهای displayof ابزارکی را مشخص میکند که نمایش هدف را تعیین میکند، و پیشفرض آن این ابزارک است. محتویات را میتوان با clipboard_get() یا selection_get() بازیابی کرد.
مالکیت کلیپبورد را در نمایشگر این ابزارک به دست بگیرید و هرگونه محتوای پیشین را حذف کنید. آرگومان کلیدواژهای displayof ابزارکی را مشخص میکند که نمایشگر هدف را تعیین میکند، و مقدار پیشفرض آن همین ابزارک است.
دادهها را از کلیپبورد در نمایش این ابزارک بازیابی میکند. آرگومان کلیدواژهای type قالبی را مشخص میکند که داده در آن بازگردانده میشود؛ این قالب یک نام اتم مانند 'STRING' یا 'FILE_NAME' است. مقدار پیشفرض آن STRING است، بهجز در X11، که ابتدا UTF8_STRING امتحان میشود و از STRING بهعنوان جایگزین استفاده میشود. آرگومان کلیدواژهای displayof نام ابزارکی است که نمایش را تعیین میکند، و پیشفرض آن پنجره ریشه برنامه است. این معادل selection_get(selection='CLIPBOARD') است.
متدهایی که پیشوند option_ دارند، پایگاه دادهی گزینههای Tk را پرسوجو و تغییر میدهند.
یک گزینه به پایگاه دادهی گزینههای Tk اضافه کنید که value را با pattern مرتبط میسازد. pattern در قالب معمول X از نامها و/یا کلاسهایی تشکیل شده است که با ستاره یا نقطه از هم جدا شدهاند. priority یک عدد صحیح بین ۰ تا ۱۰۰ است، یا یکی از نامهای نمادین 'widgetDefault' (۲۰)، 'startupFile' (۴۰)، 'userDefault' (۶۰) یا 'interactive' (۸۰)؛ پیشفرض آن interactive است.
پایگاه دادهی گزینههای Tk را پاک میکند. گزینههای پیشفرض از ویژگی RESOURCE_MANAGER یا پرونده .Xdefaults، بار بعدی که گزینهای به پایگاه داده افزوده شود یا از آن حذف شود، بهطور خودکار دوباره بارگذاری میشوند.
مقدار گزینهای را که در پایگاه دادهی گزینههای Tk، با این ابزارک تحت name و className مطابقت دارد، برمیگرداند؛ اگر هیچ ورودی مطابقی وجود نداشته باشد، یک رشته خالی برمیگرداند. هنگامی که چند ورودی مطابقت داشته باشند، ورودی با بالاترین اولویت برگردانده میشود و در میان ورودیهای با اولویت برابر، آخرین ورودی اضافهشده برگردانده میشود.
پروندهای به نام fileName را بخوانید، که باید قالب استاندارد یک پایگاه داده منابع X مانند .Xdefaults را داشته باشد، و همه گزینههای مشخصشده در آن را به پایگاه داده گزینههای Tk اضافه کنید. priority مانند option_add() تفسیر میشود و بهطور پیشفرض interactive است.
زنگ را روی نمایشگر این ابزارک، با استفاده از تنظیمات فعلی مربوط به زنگِ نمایشگر، به صدا درآورید و نگهبان صفحه را برای صفحه بازنشانی کنید. اگر displayof بهعنوان یک ابزارک داده شود، در عوض زنگ در نمایشگر آن ابزارک به صدا درمیآید.
طرحواره رنگ جدیدی را برای تمام عناصر ابزارک Tk تنظیم میکند. ابزارکهای موجود بهروزرسانی میشوند و پایگاه دادهی گزینهها تغییر میکند تا ابزارکهای بعدی از رنگهای جدید استفاده کنند. یک آرگومان رنگ واحد بهعنوان رنگ پسزمینه معمول تلقی میشود و پالت کاملی از آن محاسبه میشود. بهعنوان جایگزین، میتوان آرگومانها را بهصورت جفتهای کلیدواژهای name/value نیز وارد کرد که نام گزینههای منفرد در پایگاه دادهی گزینهها را تعیین میکنند. نام گزینههای شناختهشده عبارتاند از activeBackground، activeForeground، background، disabledForeground، foreground، highlightBackground، highlightColor، insertBackground، selectColor، selectBackground، selectForeground و troughColor؛ برای هر گزینهای که مشخص نشده باشد، پیشفرضهای معقولی محاسبه میشوند.
رنگهای برنامه را به طرحواره رنگی قهوهای روشن (bisque) که در Tk 3.6 و نسخههای پیشین استفاده میشد، بازمیگرداند. برای سازگاری با نسخههای قدیمیتر ارائه شده است.
بپرسید یا تنظیم کنید که آیا ظاهر و رفتار Tk باید بهطور سختگیرانه از Motif پیروی کند. یک مقدار بولی درست، انطباق سختگیرانه با Motif را فعال میکند (برای مثال، تغییر نکردن رنگ هنگام عبور ماوس از روی یک لغزنده). تنظیم حاصل را برمیگرداند.
متدهایی که پیشوند busy_ دارند، وضعیت مشغول بودن یک پنجره را مدیریت میکنند؛ این وضعیت یک مکاننما مشغول نمایش میدهد و ورودی کاربر را نادیده میگیرد.
این ابزارک را مشغول نشان دهید. پنجرهای شفاف در جلوی ابزارک قرار میگیرد، بهطوری که آن و همهی زیرمجموعههای آن در سلسلهمراتب ابزارک از دریافت رویدادهای اشارهگر مسدود میشوند و یک مکاننما مشغول نمایش میدهند. معمولاً باید بلافاصله پس از آن، update() فراخوانی شود تا اطمینان حاصل شود که عملیات نگهداشت (hold) پیش از آنکه برنامه پردازش خود را آغاز کند، اعمال شده است.
تنها گزینهی پیکربندی پشتیبانیشده cursor است، یعنی مکاننمای که هنگام مشغول بودن ابزارک نمایش داده میشود؛ این گزینه میتواند هر یک از مقادیر پذیرفتهشده توسط configure() را داشته باشد.
busy_hold()، busy() و tk_busy() نامهای مستعار tk_busy_hold() هستند.
اضافه شده در نسخهی 3.13.
گزینههای پیکربندی پنجره مشغول را بازیابی یا تغییر میدهد. ابزارک باید پیشتر با 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.
مقدار فعلی option پیکربندی busy را برمیگرداند. ابزارک باید پیشتر توسط tk_busy_hold() مشغول شده باشد، و option میتواند هر یک از مقادیر پذیرفتهشده توسط آن متد را داشته باشد.
busy_cget() نام مستعار tk_busy_cget() است.
اضافه شده در نسخهی 3.13.
این ابزارک را از حالت مشغول خارج کنید تا منابعی (از جمله پنجره شفاف) که هنگام مشغولشدن آن اختصاصیافتهاند، آزاد شوند. ابزارک دوباره رویدادهای کاربر را دریافت خواهد کرد. این منابع نیز هنگامی که ابزارک نابود شود، آزاد میشوند.
busy_forget() یک نام مستعار از tk_busy_forget() است.
اضافه شده در نسخهی 3.13.
اگر ابزارک در حال حاضر مشغول باشد، True برمیگرداند، در غیر این صورت False برمیگرداند.
busy_status() نام مستعاری از tk_busy_status() است.
اضافه شده در نسخهی 3.13.
فهرستی از ابزارکهایی را که در حال حاضر مشغول هستند برمیگرداند. اگر pattern داده شود، تنها ابزارکهای مشغولی که نام مسیرشان با الگو مطابقت دارد برگردانده میشوند.
busy_current() نام مستعاری برای tk_busy_current() است.
اضافه شده در نسخهی 3.13.
متدهایی که پیشوند winfo_ دارند، اطلاعات مربوط به پنجرههای مدیریتشده توسط Tk را دریافت میکنند.
شناسه عدد صحیح برای اتمی که نام آن name است را برمیگرداند و در صورتی که اتمی وجود نداشته باشد، یک اتم جدید ایجاد میکند. اگر displayof داده شده باشد، اتم در نمایش آن پنجره جستجو میشود؛ در غیر این صورت در نمایش پنجره اصلی برنامه جستجو میشود.
نام متنی اتمی که شناسهی عدد صحیح آن id است را برمیگرداند. این، معکوس winfo_atom() است. اگر displayof داده شود، شناسه در نمایش آن پنجره جستوجو میشود؛ در غیر این صورت، در نمایش پنجرهی اصلی برنامه جستوجو میشود.
تعداد سلولهای نقشه رنگ (colormap) برای ابزارک را برمیگرداند.
فهرستی حاوی ابزارکهایی که فرزند این ابزارک هستند را برمیگرداند، به ترتیب پشتهبندی از پایینترین به بالاترین. پنجرههای Toplevel بهعنوان فرزند والد منطقی خود برگردانده میشوند.
نام کلاس ابزارک را برمیگرداند.
اگر مشخص باشد که نقشه رنگ (colormap) برای ابزارک پر است، True را برمیگرداند، در غیر این صورت False را برمیگرداند.
ابزارک شامل نقطهی مشخصشده با rootX و rootY را برمیگرداند، یا اگر هیچ پنجرهای در این برنامه شامل آن نقطه نباشد، None را برمیگرداند. مختصات در دستگاه مختصات پنجرهی ریشه و بر حسب واحدهای صفحه هستند. اگر displayof داده شود، مختصات به صفحهی شامل آن پنجره اشاره میکنند؛ در غیر این صورت به صفحهی پنجرهی اصلی برنامه اشاره میکنند.
عمق ابزارک را برمیگرداند، یعنی تعداد بیتها در هر پیکسل.
اگر ابزارک وجود داشته باشد، مقدار true و در غیر این صورت مقدار false را برمیگرداند.
یک مقدار ممیز شناور برمیگرداند که تعداد پیکسلهای ابزارک معادل فاصلهی صفحهنمایش number را نشان میدهد (برای مثال، "2.0c" یا "1i"). نتیجه ممکن است کسری باشد؛ برای یک مقدار عدد صحیح گرد شده از winfo_pixels() استفاده کنید.
هندسهی ابزارک را در قالب widthxheight+x+y برمیگرداند. تمام ابعاد بر حسب پیکسل هستند. موقعیت نسبت به ابزارک والد است؛ برای موقعیت روی صفحه از winfo_rootx() و winfo_rooty() استفاده کنید. یک آفست میتواند منفی باشد؛ geometry() را ببینید.
ارتفاع ابزارک را بر حسب پیکسل برمیگرداند. هنگامی که یک پنجره برای نخستین بار ایجاد میشود، ارتفاع آن ۱ پیکسل است؛ این مقدار در نهایت توسط یک مدیر چیدمان تغییر میکند. همچنین winfo_reqheight() را ببینید.
یک شناسهی سطح پایین ویژهی سکو برای ابزارک برمیگرداند. در یونیکس، این شناسهی پنجرهی X است و در ویندوز، دسته پنجره (window handle) است.
یک تاپل از نامهای تمام مفسرهای Tcl که در حال حاضر برای یک نمایش خاص ثبت شدهاند، برمیگرداند. اگر displayof داده شده باشد، مقدار بازگشتی به نمایش آن پنجره اشاره میکند؛ در غیر این صورت، به نمایش پنجرهی اصلی برنامه اشاره میکند.
اگر ابزارک در حال حاضر نگاشتشده باشد، مقدار true بازمیگرداند، در غیر این صورت مقدار false بازمیگرداند.
نام مدیر چیدمان (geometry manager) مسئول فعلی ابزارک را برمیگرداند، یا اگر تحت مدیریت هیچ مدیر چیدمانی نباشد، یک رشته خالی برمیگرداند.
نام ابزارک را در والد خود برمیگرداند، برخلاف نام مسیر کامل آن.
نام مسیر والد ابزارک را برمیگرداند، یا اگر ابزارک پنجرهی اصلی برنامه باشد، یک رشته خالی برمیگرداند.
نام مسیر پنجرهای که شناسهی آن id است را برمیگرداند. اگر displayof داده شده باشد، شناسه در نمایشگر آن پنجره جستجو میشود؛ در غیر این صورت، در نمایشگر پنجرهی اصلی برنامه جستجو میشود.
تعداد پیکسلهای موجود در ابزارک را که با فاصله صفحهای number متناظر است برمیگرداند (برای مثال، "2.0c" یا "1i"). نتیجه به نزدیکترین عدد صحیح گرد میشود؛ برای نتیجه کسری از winfo_fpixels() استفاده کنید.
مختصات x مکاننما را بر حسب پیکسل، نسبت به پنجرهی ریشهی صفحه نمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر مکاننما در همان صفحه نمایش ابزارک نباشد، -1 را برمیگرداند.
مختصات اشارهگر را بهصورت یک تاپل (x, y)، بر حسب پیکسل و نسبت به پنجرهی ریشهی صفحهنمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر اشارهگر روی همان صفحهنمایش ابزارک نباشد، هر دو مختصات -1 خواهند بود.
مختصات y اشارهگر را بر حسب پیکسل، نسبت به پنجرهی ریشهی صفحهنمایش (یا ریشهی مجازی، در صورت استفاده) برمیگرداند. اگر اشارهگر در همان صفحهنمایشی که ابزارک قرار دارد نباشد، -1 برمیگرداند.
ارتفاع درخواستی ابزارک را بر حسب پیکسل برمیگرداند. این همان مقداری است که توسط مدیر هندسهی ابزارک برای محاسبهی هندسهی آن استفاده میشود.
عرض درخواستی ابزارک را بر حسب پیکسل برمیگرداند. این مقداری است که مدیر هندسی ابزارک برای محاسبه هندسه آن استفاده میکند.
یک تاپل (r, g, b) از شدتهای قرمز، سبز و آبی، در بازهی ۰ تا ۶۵۵۳۵، برمیگرداند که در ابزارک با color مطابقت دارند. color را میتوان در هر یک از قالبهای قابلقبول برای یک گزینهی رنگ مشخص کرد.
مختصات x گوشهی بالا سمت چپ حاشیهی ابزارک (یا خود ابزارک اگر حاشیه ندارد) را در پنجرهی ریشهی صفحه برمیگرداند.
مختصات y گوشهی بالا سمت چپ حاشیهی ابزارک (یا خود ابزارک اگر حاشیه ندارد) را در پنجرهی ریشهی صفحه برمیگرداند.
نام صفحهی مرتبط با ابزارک را در قالب displayName.screenIndex برمیگرداند.
تعداد سلولها در نقشهی رنگ پیشفرض برای صفحهی ابزارک را برمیگرداند.
عمق پنجرهی ریشهی صفحهی ابزارک را برمیگرداند، یعنی تعداد بیتها به ازای هر پیکسل.
ارتفاع صفحهی ابزارک را بر حسب پیکسل برمیگرداند.
ارتفاع صفحهی نمایش ابزارک را بر حسب میلیمتر برمیگرداند.
عرض صفحهی نمایش ابزارک را بر حسب میلیمتر برمیگرداند.
کلاس بصری پیشفرض صفحهی ابزارک را برمیگرداند؛ یکی از "directcolor"، "grayscale"، "pseudocolor"، "staticcolor"، "staticgray" یا "truecolor" است.
عرض صفحهی نمایش ابزارک را بر حسب پیکسل برمیگرداند.
رشتهای حاوی اطلاعات دربارهی سرورِ نمایش ابزارک برمیگرداند. قالب دقیق این رشته ممکن است از یک سکو به سکوی دیگر متفاوت باشد.
پنجرهی بالای سلسلهمراتبِ حاوی ابزارک را برمیگرداند. در Tk استاندارد، این همیشه یک ابزارک Toplevel است.
اگر ابزارک و تمام نیاکان آن تا نزدیکترین پنجرهی سطح بالا نگاشتشده باشند، true و در غیر این صورت false را برمیگرداند.
کلاس بصری ابزارک را برمیگرداند؛ یکی از "directcolor"، "grayscale"، "pseudocolor"، "staticcolor"، "staticgray" یا "truecolor".
شناسهی X برای بصری (visual) مربوط به ابزارک را برمیگرداند.
فهرستی برمیگرداند که visualهای در دسترس برای صفحهی ابزارک را توصیف میکند. هر آیتم شامل یک کلاس visual (به winfo_visual() مراجعه کنید) و به دنبال آن، عمقی از نوع عدد صحیح است. اگر includeids درست باشد، شناسهی X مربوط به visual نیز گنجانده میشود.
اگر پنجره ریشه مجازی مرتبط با ابزارک وجود داشته باشد، ارتفاع آن را برمیگرداند؛ در غیر این صورت ارتفاع صفحه ابزارک را برمیگرداند.
عرض پنجرهی ریشهی مجازی مرتبط با ابزارک را در صورت وجود برمیگرداند؛ در غیر این صورت، عرض صفحهی نمایش ابزارک را برمیگرداند.
آفست x پنجره ریشه مجازی مرتبط با ابزارک را نسبت به پنجره ریشه صفحه آن برمیگرداند. این مقدار معمولاً صفر یا منفی است، و اگر پنجره ریشه مجازی وجود نداشته باشد، 0 است.
آفست y پنجره ریشه مجازی مرتبط با ابزارک را نسبت به پنجره ریشه صفحهنمایش آن برمیگرداند. این مقدار معمولاً صفر یا منفی است، و اگر پنجره ریشه مجازی وجود نداشته باشد، 0 است.
عرض ابزارک را بر حسب پیکسل برمیگرداند. هنگامی که یک پنجره برای نخستین بار ایجاد میشود، عرض آن ۱ پیکسل است؛ این عرض در نهایت توسط مدیر چیدمان تغییر میکند. همچنین ببینید winfo_reqwidth().
مختصات x گوشهی بالا-چپ حاشیهی ابزارک (یا خود ابزارک، اگر حاشیهای نداشته باشد) را در والد ابزارک برمیگرداند.
مختصات y گوشهی بالا سمت چپ حاشیهی ابزارک را در والد ابزارک برمیگرداند (یا خود ابزارک اگر حاشیه ندارد).
سطح وصلهی 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.
میکساین Wm دسترسی به مدیر پنجره را فراهم میکند و به برنامه اجازه میدهد مواردی مانند عنوان، هندسه و نماد یک پنجرهی سطح بالا، نحوهی تغییر اندازهی آن و چگونگی پاسخ آن به پروتکلهای مدیر پنجره را کنترل کند. این میکساین در Tk و Toplevel ادغام شده است، بنابراین متدهای آن در هر پنجرهی سطح بالا در دسترس هستند. هر متد دو نوشتار معادل دارد: یک نام کوتاه و یک نام با پیشوند wm_ (برای مثال، title() و wm_title()). همچنین ببینید مدیر پنجره.
نسبت ابعاد (نسبت عرض به ارتفاع) پنجره را محدود میکند. اگر هر چهار آرگومان داده شوند، مدیر پنجره این نسبت را بین minNumer/minDenom و maxNumer/maxDenom حفظ میکند؛ دادن رشتههای خالی هرگونه محدودیت موجود را حذف میکند. بدون آرگومان، یک تاپل از چهار مقدار فعلی، یا اگر هیچ محدودیت نسبت ابعادی فعال نباشد، None برمیگرداند. wm_aspect() نام مستعاری از aspect() است.
ویژگیهای مختص پلتفرم پنجره را پرسوجو یا تنظیم کنید. بدون آرگومان، پرچمهای مختص پلتفرم و مقادیر آنها برمیگردانده میشوند؛ برای دریافت آنها بهصورت یک دیکشنری، return_python_dict را با مقدار true ارسال کنید. یک نام گزینه تکی مانند 'alpha' مقدار آن گزینه را برمیگرداند و گزینهها با استفاده از آرگومانهای کلیدواژهای تنظیم میشوند (alpha=0.5).
ویژگیهای در دسترس بسته به پلتفرم متفاوت است. تمام پلتفرمها از موارد زیر پشتیبانی میکنند:
کدری پنجره، از 0.0 (کاملاً شفاف) تا 1.0 (کدر). هر جا شفافیت پشتیبانی نشود، مقدار روی 1.0 باقی میماند.
اینکه پنجره در ویندوز و مکاواس در حالت تاریک رندر میشود: 'auto'، 'light' یا 'dark' (این مورد در X11 تأثیری ندارد).
اینکه پنجره تمام صفحه را اشغال میکند و حاشیه ندارد.
اینکه پنجره بالای همهی پنجرههای دیگر نمایش داده میشود.
ویندوز علاوه بر این پشتیبانی میکند:
اینکه پنجره در وضعیت غیرفعال قرار دارد.
اینکه پنجره از سبک پنجره ابزار استفاده میکند.
رنگی که کاملاً شفاف میشود، یا یک رشتهی خالی برای هیچکدام.
macOS همچنین پشتیبانی میکند:
اینکه پنجرهی زیربنایی Aqua یک nswindow است یا یک nspanel؛ این مورد فقط پیش از ایجاد پنجره قابل تنظیم است.
وضعیت تغییری که توسط دکمهی بستن پنجره و نماد پراکسی (proxy icon) نمایش داده میشود.
اینکه آیا آیکون داک برنامه برای جلب توجه جهش میکند.
نقاب سبک (style mask) پنجرهی زیربنایی Aqua، که بهصورت فهرستی از نامهای بیت مانند titled یا resizable ارائه میشود.
شناسهی گروه زبانهای که پنجره به آن تعلق دارد.
اینکه آیا پنجره میتواند بهعنوان زبانه باز شود: 'auto'، 'preferred' یا 'disallowed'.
مسیر پروندهای که نماد پراکسی (proxy icon) پنجره آن را نشان میدهد.
اینکه ناحیهی محتوا شفاف باشد و سایهی پنجره خاموش باشد.
X11 علاوه بر این پشتیبانی میکند:
نوع پنجره، یا فهرستی از انواع بهترتیب اولویت، که مدیر پنجره باید برای تفسیر پنجره از آنها استفاده کند، مانند 'dialog' یا 'splash'.
اینکه آیا پنجره بیشینهشده است.
نکته
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)، منسوخ شده است؛ در عوض از آرگومانهای کلیدواژهای استفاده کنید.
name را که باید نام میزبانی باشد که برنامه روی آن اجرا میشود، در ویژگی WM_CLIENT_MACHINE پنجره ذخیره میکند تا مدیر پنجره یا نشست از آن استفاده کند. یک رشته خالی ویژگی را حذف میکند. بدون آرگومان، آخرین نام تنظیمشده را برمیگرداند، یا یک رشته خالی. wm_client() نام مستعار client() است.
ویژگی WM_COLORMAP_WINDOWS را دستکاری میکند، که به مدیر پنجره درباره پنجرههایی که نقشهرنگهای خصوصی دارند اطلاع میدهد. اگر wlist داده شود، ویژگی را با آن پنجرهها بازنویسی میکند (ترتیب آنها یک ترتیب اولویت برای نصب نقشهرنگها است). بدون آرگومان، فهرست پنجرههایی که در حال حاضر در این ویژگی آمدهاند را برمیگرداند. wm_colormapwindows() نام مستعار colormapwindows() است.
مقدار value را در ویژگی WM_COMMAND پنجره ذخیره میکند تا توسط مدیر پنجره یا مدیر نشست استفاده شود؛ این مقدار باید فهرستی باشد که کلمات فرمان استفادهشده برای فراخوانی برنامه را ارائه میدهد. یک رشته خالی ویژگی را حذف میکند. بدون آرگومان، آخرین مقدار تنظیمشده یا یک رشته خالی را برمیگرداند. wm_command() نام مستعار command() است.
پنجره را با نگاشت آن در حالت عادی (غیرآیکنی) نمایش میدهد. اگر پنجره هرگز نگاشت نشده باشد، این کار تضمین میکند که هنگام نخستین نگاشت، بهصورت غیرآیکنی ظاهر شود. در ویندوز، پنجره همچنین بالا آورده میشود و فوکوس را دریافت میکند. wm_deiconify() نام مستعاری از deiconify() است.
مدل فوکوس پنجره را تنظیم یا پرسوجو میکند. model یا 'active' است (پنجره فوکوس ورودی را برای خود یا زیرمجموعههایش مطالبه میکند، حتی زمانی که فوکوس در برنامهای دیگر است) یا 'passive' است (پنجره به مدیر پنجره اتکا میکند تا فوکوس را به آن بدهد). بدون آرگومان، مدل جاری را برمیگرداند. مقدار پیشفرض 'passive' است، که دستور focus() آن را فرض میکند. wm_focusmodel() نام مستعار focusmodel() است.
window را از صفحهی نمایش خارج کنید (unmap) تا دیگر توسط مدیر پنجره مدیریت نشود. در این صورت با یک Toplevel مانند یک Frame رفتار میشود، اگرچه پیکربندی -menu آن به خاطر سپرده میشود و اگر ابزارک دوباره مدیریت شود، منو دوباره ظاهر میشود. wm_forget() یک نام مستعار از forget() است.
با Pack.forget() اشتباه گرفته نشود.
اضافه شده در نسخهی 3.3.
اگر مدیر پنجره آن را در چنین قابی تغییر والد داده باشد، شناسهی پنجرهی خاصِ سکو برای بیرونیترین قاب تزئینی حاوی پنجره را برمیگرداند؛ در غیر این صورت شناسهی خود پنجره را برمیگرداند. wm_frame() نام مستعار frame() است.
هندسه پنجره را تنظیم یا پرسوجو میکند. newGeometry به شکل =widthxheight+x+y است، که در آن میتوان هر یک از =، widthxheight و موقعیت +x+y را حذف کرد. width و height بر حسب پیکسل هستند (یا واحدهای شبکه برای یک پنجره شبکهبندیشده)؛ موقعیت با پیشوند + از لبه چپ یا بالای صفحهنمایش اندازهگیری میشود و موقعیت با پیشوند - از لبه راست یا پایین صفحهنمایش اندازهگیری میشود. آفست میتواند منفی باشد، مانند '200x100+-9+-8'، هنگامی که لبه پنجره فراتر از لبه متناظر صفحهنمایش قرار گرفته باشد. یک رشته خالی هر هندسه تعیینشده توسط کاربر را لغو میکند و به پنجره اجازه میدهد تا به اندازه طبیعی خود بازگردد. بدون آرگومان، هندسه کنونی را به صورت رشتهای به شکل '200x200+10+10' برمیگرداند. wm_geometry() نام مستعاری از geometry() است.
پنجره را بهعنوان یک پنجره شبکهبندیشده مدیریت میکند و رابطه بین واحدهای شبکه و پیکسلها را تعریف میکند. baseWidth و baseHeight تعداد واحدهای شبکه برای اندازه درخواستی داخلی پنجره هستند، و widthInc و heightInc اندازههای پیکسلی یک واحد شبکه افقی و یک واحد شبکه عمودی هستند. رشتههای خالی مدیریت شبکهبندیشده را غیرفعال میکنند. بدون آرگومان، یک تاپل از چهار مقدار فعلی را برمیگرداند، یا اگر پنجره شبکهبندینشده باشد None را برمیگرداند. wm_grid() نام مستعاری از grid() است.
با مدیر هندسی grid Grid.grid() اشتباه گرفته نشود.
رهبر یک گروه از پنجرههای مرتبط را تنظیم یا پرسوجو کنید. pathName نام مسیر رهبر گروه را مشخص میکند؛ برای مثال، مدیر پنجره ممکن است هنگامی که رهبر گروه به آیکون تبدیل میشود (iconified)، تمام پنجرههای گروه را از نگاشت خارج کند (unmap). یک رشته خالی پنجره را از هر گروه حذف میکند. بدون آرگومان، نام مسیر رهبر گروه فعلی یا یک رشته خالی را برمیگرداند. wm_group() نام مستعاری از group() است.
بیتمپ استفادهشده توسط مدیر پنجره برای آیکون پنجره را تنظیم یا پرسوجو میکند. bitmap یک بیتمپ را در یکی از قالبهای استاندارد پذیرفتهشده توسط Tk مشخص میکند؛ یک رشته خالی بیتمپ آیکون فعلی را لغو میکند. بدون آرگومان، نام بیتمپ آیکون فعلی یا یک رشته خالی را برمیگرداند. در ویندوز، آرگومان default یک آیکون را مشخص میکند (برای مثال یک پرونده .ico) که به تمام پنجرههای سطح بالایی که آیکون خودشان را ندارند اعمال میشود. wm_iconbitmap() نام مستعار iconbitmap() است.
پنجره را به حالت آیکونشده درآورید. اگر پنجره هنوز برای نخستین بار نگاشت (map) نشده است، ترتیبی دهید که هنگامی که در نهایت نگاشت میشود، در حالت آیکونشده ظاهر شود. wm_iconify() نام مستعار iconify() است.
بیتمپی را که بهعنوان نقاب برای آیکون استفاده میشود، تنظیم یا پرسوجو کنید (به iconbitmap() مراجعه کنید). هر جا که نقاب ۰ باشد، هیچ آیکونی نمایش داده نمیشود؛ هر جا که مقدار آن ۱ باشد، بیتهای متناظر بیتمپ آیکون نمایش داده میشوند. یک رشته خالی نقاب فعلی را لغو میکند. بدون آرگومان، نام نقاب فعلی آیکون یا یک رشته خالی را برمیگرداند. wm_iconmask() نام مستعاری از iconmask() است.
نامی را که مدیر پنجره در داخل آیکون پنجره نمایش میدهد، تنظیم یا پرسوجو میکند. بدون آرگومان، نام فعلی آیکون را برمیگرداند، یا اگر هیچ نامی تنظیم نشده باشد، یک رشتهی خالی برمیگرداند (در این حالت، مدیر پنجره معمولاً عنوان پنجره را نمایش میدهد). wm_iconname() یک نام مستعار برای iconname() است.
آیکون نوار عنوان پنجره را از یک یا چند شیء PhotoImage ارائهشده در images تنظیم میکند. میتوان چندین تصویر با اندازههای مختلف (برای مثال ۱۶x۱۶ و ۳۲x۳۲) ارائه کرد تا مدیر پنجره بتواند تصویر مناسبی را انتخاب کند. دادههای تصویر در زمان فراخوانی بهعنوان یک تصویر لحظهای گرفته میشوند؛ تغییرات بعدی در تصاویر منعکس نمیشوند. اگر default درست باشد، آیکون همچنین برای همه پنجرههای سطح بالا که در آینده ایجاد میشوند اعمال میشود. در macOS فقط از اولین تصویر استفاده میشود. wm_iconphoto() نام مستعاری از iconphoto() است.
اضافه شده در نسخهی 3.3.
راهنماییای برای مدیر پنجره دربارهی محل قرارگیری نماد پنجره تنظیم یا دریافت کنید. رشتههای خالی، راهنمایی موجود را لغو میکنند. بدون آرگومان، یک تاپل از دو مقدار فعلی را برمیگرداند، یا اگر هیچ راهنماییای فعال نباشد، None را برمیگرداند. wm_iconposition() نام مستعاری از iconposition() است.
پنجرهای را که بهعنوان آیکون برای پنجره استفاده میشود، تنظیم یا پرسوجو کنید. هنگامی که پنجره به حالت آیکون درمیآید، pathName نگاشت میشود تا بهعنوان آیکون آن عمل کند و هنگامی که از حالت آیکون خارج میشود، دوباره از نگاشت خارج میشود. یک رشتهی خالی این ارتباط را لغو میکند. بدون آرگومان، نام مسیر پنجرهی آیکون کنونی یا یک رشتهی خالی برگردانده میشود. همهی مدیران پنجره از پنجرههای آیکون پشتیبانی نمیکنند، و این مفهوم در سکوهای غیر X11 بیمعنا است. wm_iconwindow() نام مستعار iconwindow() است.
widget را به یک پنجرهی سطح بالای مستقل تبدیل میکند که توسط مدیر پنجره با نوار عنوان و غیره آراسته میشود. تنها میتوان از ابزارکهای Frame، LabelFrame و Toplevel استفاده کرد (نسخههای tkinter.ttk پذیرفته نمیشوند)؛ ارسال هر نوع ابزارک دیگری خطایی پرتاب میکند. wm_manage() نام مستعاری برای manage() است.
اضافه شده در نسخهی 3.3.
حداکثر ابعاد مجاز پنجره را بر حسب پیکسل (یا واحدهای شبکه برای پنجره شبکهبندیشده) تنظیم یا پرسوجو میکند. مدیر پنجره، پنجره را محدود میکند تا بزرگتر از width و height نباشد. بدون آرگومان، یک تاپل از حداکثر عرض و ارتفاع فعلی برمیگرداند. حداکثر اندازه بهطور پیشفرض برابر با اندازه صفحه است. wm_maxsize() نام مستعاری از maxsize() است.
حداقل ابعاد مجاز پنجره را، بر حسب پیکسل (یا واحدهای شبکه برای پنجره شبکهبندیشده)، تنظیم یا دریافت کنید. مدیر پنجره، پنجره را محدود میکند که از width و height کوچکتر نباشد. بدون آرگومان، یک تاپل از حداقل عرض و ارتفاع کنونی برمیگرداند. حداقل اندازه بهطور پیشفرض در هر بُعد یک پیکسل است. wm_minsize() نام مستعاری از minsize() است.
پرچم override-redirect را برای پنجره تنظیم یا پرسوجو میکند. هنگامی که این پرچم تنظیم شده باشد، مدیر پنجره پنجره را نادیده میگیرد: در یک قاب تزئینی قرار نمیگیرد (reparented) و کاربر نمیتواند از طریق کنترلهای معمول مدیر پنجره با آن تعامل کند. بدون آرگومان، یک مقدار بولی برمیگرداند که نشان میدهد پرچم تنظیم شده است یا خیر، یا اگر تنظیمنشده باشد، None برمیگرداند. این پرچم تنها زمانی بهطور قابلاتکا رعایت میشود که پنجره برای نخستین بار به نگاشت درآید یا از حالت withdrawn دوباره به نگاشت درآید (remapped). wm_overrideredirect() یک نام مستعار برای overrideredirect() است.
منشأ موقعیت فعلی پنجره را تنظیم یا پرسوجو میکند. who یا 'program' است یا 'user' و نشان میدهد که موقعیت را برنامه درخواست کرده است یا کاربر؛ یک رشتهی خالی منشأ فعلی را لغو میکند. بدون آرگومان، منشأ فعلی را برمیگرداند، یا اگر هیچ منشأی تنظیم نشده باشد، یک رشتهی خالی برمیگرداند. Tk بهطور خودکار، هنگامی که geometry() فراخوانی میشود، منشأ را روی 'user' تنظیم میکند، مگر اینکه بهطور صریح روی 'program' تنظیم شده باشد. wm_positionfrom() نام مستعاری از positionfrom() است.
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() است.
کنترل میکند که آیا کاربر مجاز است بهصورت تعاملی اندازهی پنجره را تغییر دهد یا خیر. width و height مقادیر بولی هستند که تعیین میکنند آیا عرض و ارتفاع پنجره قابل تغییر هستند یا خیر. بدون آرگومان، یک تاپل از دو مقدار 0/1 برمیگرداند که نشان میدهد هر بُعد در حال حاضر قابل تغییر اندازه است یا خیر. بهطور پیشفرض، یک پنجره در هر دو بُعد قابل تغییر اندازه است. wm_resizable() نام مستعاری برای resizable() است.
منبع اندازهی فعلی پنجره را تنظیم یا پرسوجو میکند. who میتواند 'program' یا 'user' باشد و نشان میدهد که اندازه توسط برنامه درخواست شده است یا توسط کاربر؛ یک رشته خالی منبع فعلی را لغو میکند. بدون آرگومان، منبع فعلی را برمیگرداند، یا اگر هیچ منبعی تنظیم نشده باشد، یک رشته خالی را برمیگرداند. wm_sizefrom() یک نام مستعار برای sizefrom() است.
وضعیت پنجره را تنظیم یا پرسوجو میکند. بدون آرگومان، وضعیت فعلی را برمیگرداند: یکی از 'normal'، 'iconic'، 'withdrawn'، 'icon' یا 'zoomed' (فقط در Windows و macOS). 'iconic' به پنجرهای اشاره دارد که به آیکون تبدیل شده است، در حالی که 'icon' به پنجرهای اشاره دارد که بهعنوان آیکون برای پنجرهای دیگر عمل میکند (به iconwindow() مراجعه کنید)؛ نمیتوان وضعیت 'icon' را تنظیم کرد. wm_state() نام مستعاری از state() است.
با ttk.Widget.state اشتباه گرفته نشود.
عنوان پنجره را تنظیم یا دریافت کنید، که مدیر پنجره باید آن را در نوار عنوان پنجره نمایش دهد. بدون آرگومان، عنوان فعلی را برمیگرداند. عنوان بهطور پیشفرض نام پنجره است. wm_title() یک نام مستعار از title() است.
پنجره را بهعنوان یک پنجره گذرا (مانند یک منوی بازشو یا جعبه محاورهای) علامتگذاری میکند که از طرف master، نام مسیر یک پنجره سطح بالای دیگر، عمل میکند. یک رشته خالی وضعیت گذرا را پاک میکند. بدون آرگومان، نام مسیر master جاری یا یک رشته خالی را برمیگرداند. یک پنجره گذرا تغییرات وضعیت master خود را منعکس میکند و ممکن است توسط مدیر پنجره بهشکل متفاوتی آراسته شود؛ تبدیل یک پنجره به پنجره گذرای خودش خطا است. wm_transient() نام مستعاری از transient() است.
پنجره را از صفحهنمایش خارج میکند، آن را از نگاشت خارج کرده و باعث میشود مدیر پنجره آن را فراموش کند. اگر پنجره هرگز نگاشت نشده باشد، در عوض در حالت خارجشده (withdrawn) نگاشت میشود. گاهی لازم است پنجرهای را خارج کنید و سپس دوباره آن را نگاشت کنید (برای مثال با deiconify()) تا برخی مدیرهای پنجره متوجه تغییرات ویژگیهای پنجره شوند. wm_withdraw() یک نام مستعار برای withdraw() است.
مدیر چیدمانی که ابزارکها را با چسباندن آنها به کنارههای ظرفشان مرتب میکند. کلاس میکساین Pack توسط همه ابزارکها (از طریق Widget) به ارث برده میشود و متدهایی را برای مدیریت یک ابزارک با مدیر چیدمان pack فراهم میکند. همچنین مدیریت هندسه را ببینید.
نکته
Pack، Place و Grid همگی نامهای کوتاه متد forget()، info()، slaves()، content() و propagate() را تعریف میکنند. در یک ابزارک، این نامهای بدون پیشوند به نسخههای مربوط به مدیر pack حل میشوند، زیرا Pack و Misc در ترتیب حل متد، پیش از Place و Grid قرار دارند، صرفنظر از اینکه کدام مدیر واقعاً ابزارک را مدیریت میکند؛ و configure()/config() گزینههای ابزارک را پیکربندی میکنند، نه هندسهی آن. برای عمل بر یک مدیر هندسهی خاص، از متدهای صریح pack_*، grid_* و place_* استفاده کنید (و برای پیکربندی هندسه از pack، grid و place).
ابزارک را درون ظرف خود بستهبندی کنید و آن را نسبت به ابزارکهای همسطحی که از قبل در آنجا بستهبندی شدهاند، موقعیتدهی کنید. گزینههای پشتیبانیشده عبارتند از:
اینکه در برابر کدام سمت از ظرف، ابزارک چیده شود: 'top' (پیشفرض)، 'bottom'، 'left' یا 'right'.
اینکه ابزارک برای پر کردن ناحیهی خود کشیده شود یا خیر: 'none' (پیشفرض)، 'x'، 'y' یا 'both'.
اینکه ابزارک باید گسترش یابد تا هر فضای اضافی در ظرف خود را اشغال کند (یک بولی، پیشفرض false).
محل قرارگیری ابزارک در قطعهی خود (parcel)، هنگامی که قطعه از ابزارک بزرگتر باشد: لنگری مانند 'n' یا 'sw' (پیشفرض 'center').
فاصلهی داخلی افزودهشده در سمت چپ و راست (ipadx) یا بالا و پایین (ipady) ابزارک، بهعنوان یک فاصلهی صفحهای (پیشفرض 0).
فاصلهگذاری بیرونی در سمت چپ و راست (padx) یا بالا و پایین (pady) ابزارک، بهصورت یک فاصلهی صفحهای یا جفتی از دو فاصله برای دو طرف (پیشفرض 0).
ابزارک را پس از ابزارک دادهشده در ترتیب چیدمان، با استفاده از همان ظرف بچینید.
ابزارک را پیش از ابزارک دادهشده در ترتیب چیدمان، با استفاده از همان ظرف بچینید.
ظرفی که ابزارک در آن بستهبندی میشود؛ مقدار پیشفرض آن ابزارک والد است.
pack()، configure() و config() نامهای مستعار pack_configure() هستند.
ابزارک را از نمایش برمیدارد و آن را از ترتیب pack حذف میکند و گزینههای pack آن را فراموش میکند. بعداً میتوان آن را دوباره با pack_configure() pack کرد. forget() نام مستعار pack_forget() است، به جز در PanedWindow، ttk.Notebook و ttk.PanedWindow که متد forget() خود را ارائه میدهند.
با Wm.forget() اشتباه گرفته نشود.
یک دیکشنری از گزینههای فعلی بستهبندی (packing) ابزارک برمیگرداند. info() یک نام مستعار برای pack_info() است.
مانند Misc.pack_propagate()، با در نظر گرفتن این ابزارک بهعنوان یک ظرف: فعال یا غیرفعال کردن انتشار هندسه. propagate() نام مستعاری از pack_propagate() است.
مشابه Misc.pack_slaves(): فهرست ابزارکهای تعبیهشده در این ابزارک را برمیگرداند. slaves() نام مستعاری از pack_slaves() است.
مشابه Misc.pack_content(). متد content() نام مستعاری برای pack_content() است.
اضافه شده در نسخهی 3.15.
مدیر چیدمانی که ابزارکها را در موقعیتها و اندازههای مشخص درون ظرفشان قرار میدهد. همه ابزارکها (از طریق Widget) از کلاس میکساین Place ارث میبرند. همچنین ببینید مدیریت هندسه.
ابزارک را درون ظرف خود در یک موقعیت مطلق یا نسبی قرار دهید. گزینههای پشتیبانیشده عبارتند از:
موقعیت مطلق افقی و عمودی نقطهی لنگر ابزارک، بهصورت فاصلهی صفحه (پیشفرض 0).
موقعیت افقی و عمودی نقطهی لنگر ابزارک بهصورت کسری از عرض و ارتفاع ظرف، که در آن 0.0 لبهی چپ یا بالا و 1.0 لبهی راست یا پایین است. اگر هر دو گزینهی مطلق و نسبی داده شوند، مقادیر آنها با هم جمع میشوند.
اینکه کدام نقطه از ابزارک در موقعیت دادهشده قرار میگیرد: یک لنگر مانند 'n' یا 'se' (پیشفرض 'nw').
عرض و ارتفاع مطلق ابزارک، بهصورت فاصلهای روی صفحه. بهطور پیشفرض، از اندازه درخواستی ابزارک استفاده میشود.
عرض و ارتفاع ابزارک بهصورت کسری از عرض و ارتفاع ظرف. اگر هر دو گزینهی مطلق و نسبی داده شوند، مقادیر آنها با هم جمع میشوند.
چگونگی تأثیر حاشیهی ظرف بر جایگذاری: 'inside' (پیشفرض) ناحیهی درون حاشیه را اندازهگیری میکند، 'outside' ناحیهی شامل حاشیه را اندازهگیری میکند، و 'ignore' از ناحیهی رسمی X استفاده میکند.
ظرف که ابزارک نسبت به آن جایگذاری میشود؛ باید والد ابزارک یا یکی از نوادگان والد باشد و مقدار پیشفرض آن والد است.
place()، configure() و config() نامهای مستعار place_configure() هستند.
ابزارک را از نگاشت خارج میکند و آن را از جایگذاری حذف میکند، بهطوریکه گزینههای جایگذاری آن فراموش میشوند.
یک دیکشنری از گزینههای جاری place ابزارک برمیگرداند.
مشابه Misc.place_slaves(): فهرست ابزارکهای قرار گرفته در این ابزارک را برمیگرداند.
مشابه Misc.place_content().
اضافه شده در نسخهی 3.15.
مدیر چیدمانی که ابزارکها را در یک شبکهی دوبعدی از ردیفها و ستونها درون ظرف آنها میچیند. همهی ابزارکها میکساین Grid را (از طریق Widget) به ارث میبرند. همچنین مدیریت هندسه را ببینید.
ابزارک را در یک خانه از شبکهی ظرف خود قرار میدهد.
با Wm.grid() اشتباه گرفته نشود.
گزینههای پشتیبانیشده عبارتند از:
ردیف و ستون سلولی که ابزارک در آن قرار میگیرد، از 0 شمرده میشود. column بهطور پیشفرض برابر با ستون پس از ابزارک قبلی قرار دادهشده در همان فراخوانی grid_configure() (یا 0) است، و row بهطور پیشفرض برابر با ردیف خالی بعدی است.
تعداد ردیفها و ستونهایی که ابزارک باید در بر بگیرد (پیشفرض 1).
نحوهی قرار دادن یا کشیدن ابزارک هنگامی که سلول آن بزرگتر از ابزارک است: رشتهای شامل صفر یا چند تا از نویسههای 'n'، 's'، 'e' و 'w' که اضلاع سلول را که ابزارک به آنها میچسبد مشخص میکند. مشخص کردن هر دو 'n' و 's' (یا 'e' و 'w') باعث میشود ابزارک کشیده شود تا ارتفاع (یا عرض) سلول را پر کند. مقدار پیشفرض '' است که ابزارک را در اندازهی درخواستی آن در مرکز قرار میدهد.
فاصلهی داخلی افزودهشده در سمت چپ و راست (ipadx) یا بالا و پایین (ipady) ابزارک، بهعنوان یک فاصلهی صفحهای (پیشفرض 0).
فاصلهگذاری بیرونی در سمت چپ و راست (padx) یا بالا و پایین (pady) ابزارک، بهصورت یک فاصلهی صفحهای یا جفتی از دو فاصله برای دو طرف (پیشفرض 0).
ظرف که ابزارک در شبکهی آن قرار میگیرد؛ بهطور پیشفرض، ابزارک والد است.
grid()، configure() و config() نامهای مستعار grid_configure() هستند.
ابزارک را از نگاشت خارج کرده و آن را از شبکه حذف میکند، گزینههای شبکه آن را نیز فراموش میکند.
نگاشت ابزارک را لغو کرده و آن را از شبکه حذف میکند، اما گزینههای شبکهی آن را به خاطر میسپارد تا در صورت قرارگیری مجدد در شبکه، به همان سلول بازگردانده شود.
یک دیکشنری از گزینههای فعلی شبکهبندی (grid) ابزارک برمیگرداند.
مشابه Misc.grid_bbox(). bbox() نام مستعاری از grid_bbox() است، بهجز در Canvas، Listbox، Spinbox، Text، ttk.Entry و ttk.Treeview، که متد bbox() خود را ارائه میدهند.
همانند Misc.grid_columnconfigure(): گزینههای یک ستون شبکه (مانند weight، minsize، pad و uniform) را پرسوجو یا تنظیم میکند. columnconfigure() نام مستعاری از grid_columnconfigure() است.
مشابه Misc.grid_rowconfigure(): گزینههای یک ردیف شبکه را پرسوجو یا تنظیم میکند. rowconfigure() نام مستعاری از grid_rowconfigure() است.
مشابه Misc.grid_location(): (column, row) سلولی را که پیکسل در x، y را میپوشاند برمیگرداند. location() نام مستعاری از grid_location() است.
مانند Misc.grid_size(): یک تاپل (columns, rows) برمیگرداند که اندازهی شبکه را نشان میدهد. size() یک نام مستعار برای grid_size() است، بهجز در ابزارک Listbox، که متد size() خود را ارائه میدهد.
همان Misc.grid_propagate() است.
همانند Misc.grid_slaves(): ابزارکهای مدیریتشده در شبکه را بازمیگرداند، که بهصورت اختیاری به یک ردیف و/یا ستون محدود شدهاند.
مشابه Misc.grid_content().
اضافه شده در نسخهی 3.15.
میکساینکه رابط پیمایش افقی مشترک میان ابزارکهایی مانند Entry، Canvas، Listbox، Text و Spinbox را فراهم میکند. متد xview() یک ابزارک بهعنوان command یک Scrollbar افقی ثبت میشود.
موقعیت افقی نما را دریافت یا تغییر میدهد. بدون آرگومان، یک تاپل (first, last) از دو کسر بین ۰ و ۱ برمیگرداند که بخشی از سند را که در حال حاضر قابل مشاهده است، نشان میدهند. در غیر این صورت، آرگومانها به فرمان ابزارک xview در Tk ارسال میشوند و معمولاً توسط یک نوار پیمایش تولید میشوند؛ xview_moveto() و xview_scroll() رابط آسانتری فراهم میکنند.
نما را بهگونهای تنظیم کنید که fraction از عرض کل سند در سمت چپ، خارج از صفحه قرار گیرد. fraction عددی بین ۰ و ۱ است.
میکساینرابط پیمایش عمودی مشترک میان ابزارکهایی مانند Canvas، Listbox و Text را فراهم میکند. متد yview() یک ابزارک بهعنوان فرمان یک Scrollbar عمودی ثبت میشود.
موقعیت عمودی نما را پرسوجو میکند یا تغییر میدهد. بدون آرگومان، یک تاپل (first, last) از دو کسر بین ۰ و ۱ برمیگرداند که نشاندهندهی بخشی از سند است که در حال حاضر قابل مشاهده است. در غیر این صورت، آرگومانها، که معمولاً توسط نوار لغزش تولید میشوند، به فرمان yview ابزارک Tk ارسال میشوند؛ yview_moveto() و yview_scroll() رابط آسانتری فراهم میکنند.
نما را طوری تنظیم کنید که fraction از ارتفاع کل سند در بالای صفحه خارج از دید باشد. fraction عددی بین ۰ و ۱ است.
نما را به اندازهی number واحد به بالا یا پایین جابهجا کنید. what یا 'units' است یا 'pages'؛ مقدار منفی number به بالا اسکرول میکند و مقدار مثبت به پایین اسکرول میکند. ابزارک Text همچنین 'pixels' را میپذیرد و در این صورت number میتواند یک فاصلهی روی صفحه مانند '1i' باشد.
کلاس پایهی داخلی برای همهی ابزارکها. این کلاس از Misc ارثبری میکند و سازوکار ایجاد ابزارک Tk زیربنایی را میافزاید؛ کد برنامه معمولاً بهجای نمونهسازی مستقیم BaseWidget از Widget یا یک کلاس ابزارک مشخص استفاده میکند.
این ابزارک و تمام فرزندان آن را نابود میکند، ابزارکهای Tk مربوطه را حذف میکند و دستورات Tcl مرتبط را حذف میکند.
کلاس پایه داخلی برای ابزارکهای استاندارد. این کلاس، BaseWidget را با کلاسهای میکساین مدیر چیدمانیعنی Pack، Place و Grid ترکیب میکند تا هر ابزارک بتواند توسط هر یک از سه مدیر چیدمان مدیریت شود. کلاسهای ابزارک عینی (Button، Label و غیره) از Widget مشتق میشوند.
یک ابزارک Tk سطح بالا میسازد، که معمولاً پنجرهی اصلی یک برنامه است، و یک مفسر Tcl برای این ابزارک راهاندازی میکند. هر نمونه، مفسر Tcl مرتبط با خود را دارد. از Misc و Wm ارث میبرد.
برای ایجاد یک مفسر Tcl بدون مقداردهی اولیهی زیرسیستم Tk، بهجای آن از تابع کارخانهی Tcl() استفاده کنید.
کلاس Tk معمولاً با استفاده از تمام مقادیر پیشفرض نمونهسازی میشود. با این حال، آرگومانهای کلیدواژهای زیر در حال حاضر شناسایی میشوند:
هنگامی که (بهصورت یک رشته) داده شود، متغیر محیطی DISPLAY را تنظیم میکند. (فقط X11)
نام پرونده پروفایل. بهطور پیشفرض، baseName از نام برنامه (sys.argv[0]) گرفته میشود.
نام کلاس ابزارک. بهعنوان پرونده پروفایل و همچنین بهعنوان نامی که Tcl با آن فراخوانی میشود (argv0 در interp) استفاده میشود.
اگر True باشد، زیرسیستم Tk را راهاندازی میکند. تابع tkinter.Tcl() این را روی False قرار میدهد.
اگر True باشد، تمام دستورات سرور X بهصورت همگام اجرا میشوند، بهطوری که خطاها بلافاصله گزارش میشوند. میتوان از آن برای اشکالزدایی استفاده کرد. (فقط X11)
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 ایجاد شده است. این شیء دسترسی به مفسر Tcl را فراهم میکند. هر ابزارکی که به همان نمونه از Tk متصل باشد، مقدار یکسانی برای ویژگی tk خود دارد.
شیء ابزارکی که این ابزارک را در بر میگیرد. برای Tk، master برابر None است، زیرا پنجرهی اصلی است. اصطلاحات master و parent مشابهاند و گاهی بهجای یکدیگر بهعنوان نام آرگومان استفاده میشوند؛ با این حال، فراخوانی winfo_parent() رشتهای از نام ابزارک را برمیگرداند، در حالی که master شیء را برمیگرداند. parent/child رابطهی درختمانند را بازتاب میدهد، در حالی که master (یا container)/content ساختار ظرف را بازتاب میدهد.
فرزندان مستقیم این ابزارک بهصورت یک dict با نام ابزارکهای فرزند بهعنوان کلیدها و اشیای نمونهی فرزند بهعنوان مقدارها.
این ابزارک و همه ابزارکهای زیرمجموعه آن را نابود میکند و برای پنجره اصلی، اتصال به مفسر Tcl زیرین را پایان میدهد.
بارگذاری و مقداردهی اولیهی زیرسیستم Tk را به پایان میرساند. این متد تنها زمانی لازم است که مفسر بدون Tk ایجاد شده باشد (برای مثال از طریق Tcl())؛ وقتی useTk برابر true باشد، بهصورت خودکار فراخوانی میشود.
پروندههای پروفایل کاربر .className.tcl و .baseName.tcl را میخواند و در مفسر Tcl بارگذاری (source) میکند و پروندههای متناظر .className.py و .baseName.py را اجرا میکند. این کار در هنگام مقداردهی اولیه فراخوانی میشود؛ توضیح سازنده را در بالا ببینید.
یک استثنای کالبک را گزارش میدهد. این هنگامی فراخوانی میشود که یک استثنا از یک کالبک Tkinter به بیرون منتشر شود؛ exc، val و tb نوع استثنا، مقدار و ردگیری پشته هستند، همانگونه که sys.exc_info() برمیگرداند. پیادهسازی پیشفرض یک ردگیری پشته را در sys.stderr چاپ میکند. میتوان آن را برای سفارشیسازی مدیریت خطا بازنویسی کرد، برای مثال برای نمایش ردگیری پشته در یک پنجرهی محاورهای.
یک ابزارک Toplevel یک پنجره سطحبالا است، مشابه یک Frame با این تفاوت که والد X آن پنجره ریشه یک صفحهنمایش است، نه والد منطقی آن. هدف اصلی آن این است که بهعنوان ظرفی برای جعبههای محاوره و سایر مجموعههای ابزارکها عمل کند؛ تنها ویژگیهای قابل مشاهده آن پسزمینه و یک حاشیه سهبعدی اختیاری است. از گزینههای قابلتوجه میتوان به menu اشاره کرد که یک Menu را بهعنوان نوار منوی پنجره نصب میکند. این ابزارک از BaseWidget و Wm ارث میبرد، بنابراین یک پنجره سطحبالا توسط مدیر پنجره مدیریت میشود. برای فهرست کامل گزینهها، به صفحه راهنمای toplevel در Tk مراجعه کنید.
یک ابزارک Button یک رشته متنی، بیتمپ یا تصویر را نمایش میدهد و هنگامی که کاربر آن را فشار دهد (با کلیک دکمه ۱ ماوس روی دکمه یا، هنگامی که دکمه تمرکز دارد، با فشار دادن کلید فاصله)، یک فرمان را فراخوانی میکند. این ابزارک از Widget ارث میبرد. علاوه بر گزینههای استاندارد ابزارک، یک دکمه گزینههایی را میپذیرد که در صفحه راهنمای button در Tk مستند شدهاند، مانند command (کالبکی که هنگام فشار دادن دکمه فراخوانی میشود)، textvariable، state و default.
فرمان مرتبط با دکمه را، در صورت وجود، فراخوانی کنید و نتیجه آن را برگردانید، یا اگر فرمانی با دکمه مرتبط نباشد، یک رشته خالی برگردانید. اگر وضعیت دکمه disabled باشد، این عمل نادیده گرفته میشود.
دکمه را با چند بار نمایش مجدد، بین رنگهای فعال و عادی بهصورت متناوب چشمک بزنید. در پایان چشمک، دکمه در همان وضعیت عادی یا فعالی باقی میماند که هنگام فراخوانی متد داشت. اگر وضعیت دکمه disabled باشد، این عمل نادیده گرفته میشود.
ابزارک Canvas گرافیک ساختاریافته را پیادهسازی میکند. این ابزارک هر تعداد آیتم را نمایش میدهد، مانند کمانها، سطرهای، بیضیها، چندضلعیها، مستطیلها، متن، بیتمپها، تصاویر و پنجرههای تعبیهشده، که میتوان آنها را ترسیم کرد، جابهجا کرد، تغییر رنگ داد و به رویدادها متصل کرد. این ابزارک از Widget، XView و YView ارث میبرد، بنابراین میتوان نما را بهصورت افقی و عمودی با xview() و yview() پیمایش کرد. برای فهرست کامل گزینههای ابزارک و آیتم، به صفحه راهنمای canvas در Tk مراجعه کنید.
هر آیتم دارای یک شناسه عدد صحیح یکتا، که هنگام ایجاد اختصاص داده میشود، و صفر یا چند برچسب رشتهای است. برچسب یک رشته دلخواه است که به شکل عدد صحیح نیست؛ ممکن است یک برچسب یکسان بین بسیاری از آیتمها مشترک باشد، که این امر برچسبها را برای گروهبندی آیتمها مناسب میسازد. برچسب ویژه 'all' با همه آیتمهای بوم مطابقت دارد، و 'current' با بالاترین آیتم زیر مکاننما ماوس مطابقت دارد. بیشتر متدها یک آرگومان tagOrId میگیرند که ممکن است یک شناسه عدد صحیح باشد که یک آیتم واحد را مشخص میکند، یا برچسبی باشد که صفر یا چند آیتم را مشخص میکند؛ همانطور که در صفحه راهنمای canvas Tk توضیح داده شده است، یک برچسب همچنین میتواند یک عبارت منطقی از برچسبها باشد که با عملگرهای &&، ||، ^، ! و پرانتز ترکیب شده است. هنگامی که به متدی که روی یک آیتم واحد عمل میکند، یک tagOrId داده شود که با چند آیتم مطابقت دارد، معمولاً از پایینترین آیتم منطبق در فهرست نمایش استفاده میکند.
آیتمها در یک فهرست نمایش نگهداری میشوند که ترتیب ترسیم را تعیین میکند: آیتمهایی که در فهرست دیرتر میآیند، روی آیتمهای پیشین ترسیم میشوند. یک آیتم تازه ایجادشده در بالای فهرست قرار میگیرد؛ ترتیب را میتوان با tag_raise() و tag_lower() تغییر داد.
یک آیتم جدید از نوع متناظر ایجاد میشود و شناسهی عدد صحیح آن را برمیگرداند. هر متد بهصورت 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 مشخص میشود).
بیشتر انواع آیتم، مجموعهی مشترکی از گزینههای استاندارد آیتم و چند گزینهی مختص هر نوع را میپذیرند. نام گزینهها بهعنوان آرگومانهای کلیدواژهای، بدون خط تیرهی آغازین ارسال میشوند.
گزینههای استاندارد آیتم عبارتند از:
رنگی که برای پر کردن درون آیتم، یا برای ترسیم یک آیتم از نوع خط یا نویسههای یک آیتم از نوع متن استفاده میشود. رشته خالی (پیشفرض برای همهی انواع بهجز خط و متن) آیتم را بدون پر شدن باقی میگذارد.
رنگی که برای رسم خط دور آیتم استفاده میشود. یک رشتهی خالی هیچ خط دوری رسم نمیکند.
پهنای خط دور، با مقدار پیشفرض 1.0. اگر outline خالی باشد، هیچ تأثیری ندارد.
الگوی خطچین برای خط دور، که یا بهصورت دنبالهای از طول قطعهها بر حسب پیکسل داده میشود یا بهصورت رشتهای از نویسههای '.'، ','، '-'، '_' و فاصله. الگوی خالی (پیشفرض) یک خط دور توپر رسم میکند.
آفست شروع بر حسب پیکسل در الگوی dash. اگر الگوی dash وجود نداشته باشد، نادیده گرفته میشود.
یک بیتمپ که بهعنوان الگوی نقطهنگاری (stipple pattern) هنگام پر کردن آیتم استفاده میشود. تنها در X11 بهخوبی پشتیبانی میشود.
یک بیتمپ که بهعنوان الگوی stipple هنگام رسم خط دور استفاده میشود. اگر outline خالی باشد، هیچ تأثیری ندارد.
آفست الگوهای نقطهنگاری (stipple) برای پر کردن و خط دور، که بهصورت 'x,y' یا بهعنوان یک سمت مانند 'n'، 'se' یا 'center' داده میشود. آفستهای نقطهنگاری فقط در X11 پشتیبانی میشوند.
وضعیت بوم را برای این آیتم بازنویسی میکند؛ یکی از 'normal'، 'disabled' یا 'hidden'.
یک برچسب یا دنبالهای از برچسبها برای انتساب به آیتم، که جایگزین برچسبهای موجود میشود.
بسیاری از این گزینهها دارای گونههای active... و disabled... هستند (مانند activefill، disabledfill، activewidth، disableddash، activeoutline، disabledstipple) که هنگام فعال بودن آیتم (قرار داشتن زیر مکاننما ماوس) یا در وضعیت غیرفعال بودن آن، جایگزین گزینهی پایه میشوند.
انواع آیتم زیر از گزینههای اضافی پشتیبانی میکنند.
برای آیتمهای arc:
آغاز محدودهی زاویهای کمان، بر حسب درجه که خلاف جهت عقربههای ساعت از موقعیت ساعت ۳ اندازهگیری میشود.
اندازهی بازهی زاویهای، بر حسب درجه، در خلاف جهت عقربههای ساعت از start.
نحوه ترسیم کمان: 'pieslice' (پیشفرض)، 'chord' یا 'arc'.
برای آیتمهای line:
محل رسم سرپیکانها: 'none' (پیشفرض)، 'first'، 'last' یا 'both'.
دنبالهای از سه فاصله که شکل نوک پیکانها را توصیف میکند.
نحوه رسم انتهای سطرهای: 'butt' (پیشفرض)، 'projecting' یا 'round'.
نحوهی رسم رئوس خط: 'round' (پیشفرض)، 'bevel' یا 'miter'.
روش هموارسازی: یک مقدار نادرست (پیشفرض) برای حالت بدون هموارسازی، یا 'true'/'bezier' یا 'raw' برای رسم خط بهصورت منحنی.
تعداد پارهسطرهایی که هر اسپلاین (spline) را هنگام فعال بودن smooth تقریب میزنند.
برای آیتمهای polygon:
در مورد آیتمهای line، بر خط پیرامونی چندضلعی اعمال میشود.
برای آیتمهای text:
رشتهای برای نمایش؛ نویسههای خط جدید، سطرهای جدید را آغاز میکنند.
قلم استفادهشده برای متن.
چگونگی تراز سطرهای: 'left' (پیشفرض)، 'right' یا 'center'.
چگونگی قرارگیری متن نسبت به نقطهی آن، که مقدار پیشفرض آن 'center' است.
حداکثر طول خط؛ اگر غیرصفر باشد، سطرهای در فاصلهها شکسته میشوند.
میزان چرخش متن در خلاف جهت عقربههای ساعت حول نقطه موقعیتدهی آن، از 0.0 تا 360.0 (پیشفرض 0.0).
اندیس نویسهای که باید زیر آن خط کشیده شود، یا -1 برای هیچکدام.
برای آیتمهای bitmap:
بیتمپ برای نمایش.
نحوهی قرارگیری بیتمپ نسبت به نقطهی آن.
رنگهای استفادهشده برای پیکسلهای 0 و 1 بیتمپ؛ یک background خالی، پیکسلهای 0 را شفاف میکند. هر دو دارای گونههای active... و disabled... هستند و bitmap دارای گونههای activebitmap و disabledbitmap است.
برای آیتمهای image:
تصویر Tk برای نمایش، که پیشتر با پروتکلهای تصویر ایجاد شده است.
چگونگی قرارگیری تصویر نسبت به نقطهی آن.
هر دو گزینه دارای گونههای active... و disabled... (activeimage، disabledimage) هستند که در وضعیتهای فعال و غیرفعال استفاده میشوند.
برای آیتمهای window:
ابزارکی که باید تعبیه شود؛ این ابزارک باید فرزند بوم یا فرزند یکی از نیاکان آن باشد و نباید یک پنجره سطح بالا باشد.
چگونگی قرارگیری پنجره نسبت به نقطهی آن.
اندازهای که باید به پنجره اختصاص داده شود؛ اگر صفر باشد (پیشفرض)، اندازهی درخواستی به پنجره داده میشود.
آیتمهای oval و rectangle گزینههای مختص نوع ندارند؛ آنها فقط از گزینههای استاندارد آیتم استفاده میکنند.
نکته
نسخهی Tk 8.6 گزینهی angle را برای آیتمهای text اضافه کرد.
مختصات یک آیتم را بازیابی یا تغییر دهید. اگر تنها tagOrId داده شود، فهرستی از مختصات ممیز شناور آیتم مشخصشده با tagOrId برمیگرداند (اولین آیتم منطبق، اگر چندین آیتم منطبق وجود داشته باشد). اگر مختصات جدید داده شود، مختصات آن آیتم با آنها جایگزین میشود؛ مانند متدهای create_*، میتوان مختصات را بهصورت اعداد جداگانه، بهصورت یک دنباله واحد، یا بهصورت جفتهای مختصات داد. مختصات برگرداندهشده همیشه بر حسب پیکسل هستند، صرفنظر از واحدهای استفادهشده برای مشخص کردن آنها؛ برای مستطیلها، بیضیها و کمانها، به ترتیب چپ، بالا، راست، پایین مرتب شدهاند.
تغییر یافته در نسخهی 3.12: آرگومانها اکنون مسطح شدهاند: مختصات میتوانند بهصورت آرگومانهای جداگانه، بهصورت یک دنباله واحد، یا بهصورت جفتها گروهبندیشده داده شوند، مانند متدهای create_*.
هر یک از آیتمهای مشخصشده با tagOrId را در فضای مختصات بوم (canvas) با افزودن xAmount به هر یک از مختصاتهای x و yAmount به هر یک از مختصاتهای y آن آیتم جابهجا میکند.
آیتمهای مشخصشده با tagOrId را بهگونهای جابهجا کنید که اولین جفت مختصات پایینترین آیتم منطبق (گوشهی بالا سمت چپ جعبهی محدودکننده) در موقعیت (x, y) قرار گیرد. *x یا y میتواند رشتهای خالی باشد، که در این صورت مختصات متناظر بدون تغییر میماند. همهی آیتمهای منطبق موقعیتهای خود را نسبت به یکدیگر حفظ میکنند.
اضافه شده در نسخهی 3.8.
مقیاسدهی مجدد مختصات تمام آیتمهای دادهشده توسط tagOrId در فضای مختصات بوم. هر مختصات x بهگونهای تنظیم میشود که فاصلهی آن از xOrigin با ضریب xScale تغییر کند، و هر مختصات y بهگونهای که فاصلهی آن از yOrigin با ضریب yScale تغییر کند (ضریب 1.0 مختصات را بدون تغییر باقی میگذارد).
هر یک از آیتمهای دادهشده توسط آرگومانهای tagOrIds را حذف میکند.
از هر یک از آیتمهای دادهشده توسط tagOrId، نویسهها (برای آیتمهای متنی) یا مختصات (برای آیتمهای خط و چندضلعی) را در بازهی first تا last (شامل هر دو) حذف میکند؛ مقدار پیشفرض last برابر first است. آیتمهایی که از اندیسدهی پشتیبانی نمیکنند، این عملیات را نادیده میگیرند.
string را در هر یک از آیتمهای مشخصشده با tagOrId، درست پیش از نویسه یا مختصاتی که اندیس آن beforeThis است، درج کنید. برای آیتمهای خط و چندضلعی، string باید دنبالهای معتبر از مختصات باشد.
مقدار فعلی گزینه پیکربندی option را برای آیتم مشخصشده با tagOrId برمیگرداند (اگر با چندین آیتم مطابقت داشته باشد، پایینترین آیتم منطبق). این مانند cget() است، اما برای یک آیتم منفرد اعمال میشود.
گزینههای پیکربندی آیتمهای مشخصشده با tagOrId را بپرسید یا تغییر دهید. این متد همانند configure() است، با این تفاوت که بهجای کل بوم، به آیتمهای جداگانه اعمال میشود. بدون هیچ گزینهای، یک دیکشنری برمیگرداند که گزینههای جاری اولین آیتم منطبق را توصیف میکند؛ در غیر این صورت، گزینههای دادهشده را روی همه آیتمهای منطبق تنظیم میکند. گزینههای مجاز، گزینههایی هستند که متد create_* متناظر آنها را میپذیرد. itemconfig() نام مستعاری برای itemconfigure() است.
نوع آیتم دادهشده توسط tagOrId را برمیگرداند (اولین آیتم منطبق در صورتی که با چندین آیتم مطابقت داشته باشد)، مانند 'rectangle' یا 'text'، یا اگر tagOrId با هیچ آیتمی مطابقت نداشته باشد None را برمیگرداند.
یک تاپل از برچسبهای مرتبط با آیتم مشخصشده توسط tagOrId برمیگرداند (در صورت تطابق با چندین آیتم، اولین آیتم منطبق در ترتیب فهرست نمایش). اگر هیچ آیتمی منطبق نباشد یا آیتم برچسبی نداشته باشد، یک تاپل خالی برمیگرداند.
برچسب tagToDelete (که بهطور پیشفرض tagOrId است) را از هر یک از آیتمهای دادهشده توسط tagOrId حذف میکند. آیتمهایی که آن برچسب را ندارند، بدون تغییر میمانند.
برچسب newtag را به هر آیتمی که توسط مشخصه جستجوی searchSpec (و هر args بیشتر) انتخابشده است، اضافه میکند. searchSpec یکی از 'above'، 'all'، 'below'، 'closest'، 'enclosed'، 'overlapping' یا 'withtag' است؛ متدهای addtag_* زیر، متدهای پوششی مناسبی هستند که هر یک از این قالبها را فراهم میکنند.
برچسب newtag را به آیتم بلافاصله بالای (پس از) tagOrId در فهرست نمایش اضافه کنید.
برچسب newtag را به تمام آیتمهای بوم اضافه کنید.
برچسب newtag را به آیتم درست پایین (قبل از) tagOrId در فهرست نمایش اضافه کنید.
برچسب newtag را به نزدیکترین آیتم به نقطهی (x، y) اضافه میکند. اگر halo داده شده باشد، هر آیتمی که در آن فاصله از نقطه قرار داشته باشد، همپوشان با آن در نظر گرفته میشود. اگر start داده شده باشد (یک برچسب یا شناسه)، بالاترین آیتم نزدیک که پایینتر از start در فهرست نمایش قرار دارد انتخاب میشود؛ این قابلیت میتواند برای پیمایش همهی نزدیکترین آیتمها استفاده شود.
برچسب newtag را به هر آیتمی که بهطور کامل درون مستطیل (x1، y1، x2، y2) محصور شده است، اضافه کنید، که در آن x1 <= x2 و y1 <= y2 است.
برچسب newtag را به هر آیتمی که با مستطیل (x1, y1, x2, y2) همپوشانی دارد یا درون آن محصور شده است، اضافه کنید، که در آن x1 <= x2 و y1 <= y2 است.
برچسب newtag را به هر آیتم دادهشده توسط tagOrId اضافه کنید.
تاپلی از شناسههای همه آیتمهای انتخابشده توسط مشخصه جستجوی searchSpec (و هر آرگومان بعدی در args) را برمیگرداند، به ترتیب پشتهبندی و با پایینترین آیتم در ابتدا. مشخصه جستجو میتواند هر یک از قالبهای پذیرفتهشده توسط addtag() را داشته باشد. متدهای find_* زیر، متدهای پوششی آسانتری حول آن هستند.
یک تاپل شامل شناسهی آیتم درست بالای tagOrId در فهرست نمایش را برمیگرداند.
یک تاپل از شناسههای تمام آیتمهای موجود در بوم را به ترتیب پشتهبندی برمیگرداند.
یک تاپل شامل شناسهی آیتمی که درست زیر tagOrId در فهرست نمایش قرار دارد برمیگرداند.
یک تاپل شامل شناسهی نزدیکترین آیتم به نقطهی (x، y) برمیگرداند. halo و start مانند addtag_closest() تفسیر میشوند.
یک تاپل از شناسههای تمام آیتمهایی که کاملاً درون مستطیل (x1, y1, x2, y2) محصور شدهاند، برمیگرداند.
یک تاپل از شناسههای تمام آیتمهایی که با مستطیل (x1, y1, x2, y2) همپوشانی دارند یا درون آن محصور شدهاند را برمیگرداند.
یک تاپل از شناسههای تمام آیتمهای مشخصشده با tagOrId را برمیگرداند.
تمام آیتمهای مشخصشده توسط tagOrId را به موقعیت جدیدی در فهرست نمایش، دقیقاً بالاتر از آیتم مشخصشده توسط aboveThis، یا به بالای فهرست نمایش اگر aboveThis ذکر نشود، منتقل میکند. هنگامی که چند آیتم منتقل میشوند، ترتیب نسبی آنها حفظ میشود. این کار تأثیری بر آیتمهای پنجرهی تعبیهشده ندارد؛ در عوض، ترتیب پشتهای آنها توسط Misc.tkraise() و Misc.lower() کنترل میشود. lift() و tkraise() نامهای مستعار tag_raise() هستند.
تمام آیتمهای مشخصشده با tagOrId را به موقعیت جدیدی در فهرست نمایش، درست زیر آیتم مشخصشده با belowThis، یا در صورت حذف belowThis به انتهای فهرست نمایش منتقل میکند. هنگامی که چندین آیتم جابهجا میشوند، ترتیب نسبی آنها حفظ میشود. این کار تأثیری بر آیتمهای پنجرهی تعبیهشده ندارد. lower() نام مستعاری برای tag_lower() است.
نکته
در یک Canvas، tkraise()/lift() و lower() آیتمهای بوم را دوباره در پشته میچینند و متدهای بهارثبردهشدهی Misc.tkraise()/Misc.lift() و Misc.lower() را میپوشانند؛ متدهایی که خود ابزارک را دوباره در پشته میچینند و بنابراین در دسترس نیستند.
کالبک func را برای تمام آیتمهای مشخصشده با tagOrId به دنباله رویداد sequence متصل میکند، بهگونهای که هرگاه آن رویداد برای یکی از آیتمها رخ دهد، func فراخوانی شود. این مانند Widget.bind است، اما روی آیتمهای بوم بهجای ابزارکهای کامل عمل میکند؛ فقط رویدادهای ماوس، صفحهکلید و مجازی را میتوان متصل کرد. رویدادهای ماوس به آیتم جاری و رویدادهای صفحهکلید به آیتم دارای فوکوس هدایت میشوند (به focus() مراجعه کنید). اگر add درست باشد، اتصال جدید به هرگونه اتصال موجود برای همان دنباله افزوده میشود، نه اینکه آنها را جایگزین کند. شناسه تابع متصلشده را برمیگرداند؛ میتوان این شناسه را به tag_unbind() داد.
اتصال رویداد sequence را برای همه آیتمهای مشخصشده با tagOrId حذف میکند. اگر funcid داده شود، فقط همان کالبک (که توسط tag_bind() برگرداندهشده است) لغو اتصال میشود و از ثبت خارج میگردد.
تغییر یافته در نسخهی 3.13: اگر funcid داده شده باشد، فقط همان کالبک از اتصال خارج میشود.
یک ۴-تایی (x1, y1, x2, y2) برگردانید که یک جعبهی محدودکننده (bounding box) تقریبی را بر حسب پیکسل ارائه میدهد، جعبهای که همه آیتمهای مشخصشده با tagOrId و هر tagOrIds دیگری را در بر میگیرد. ممکن است نتیجه، جعبهی محدودکننده واقعی را به اندازه چند پیکسل بیشبرآورد کند. اگر هیچ آیتمی مطابقت نداشته باشد یا آیتمهای منطبق چیزی برای نمایش نداشته باشند، None را برگردانید.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه از grid_bbox() استفاده کنید.
با داشتن مختصات x پنجره screenx، مختصات x بوم نمایشدادهشده در آن موقعیت را برمیگرداند. اگر gridspacing داده شده باشد، نتیجه به نزدیکترین مضرب از واحدهای gridspacing گرد میشود.
با فرض مختصات y پنجره screeny، مختصات y بوم نمایشدادهشده در آن موقعیت را برمیگرداند. اگر gridspacing داده شود، نتیجه به نزدیکترین مضرب از واحدهای gridspacing گرد میشود.
با tagOrId، فوکوس صفحهکلید برای بوم را روی اولین آیتم مشخصشده توسط tagOrId که از مکاننمای درج پشتیبانی میکند، تنظیم میکند؛ اگر چنین آیتمی وجود نداشته باشد، فوکوس بدون تغییر باقی میماند. اگر tagOrId یک رشته خالی باشد، فوکوس را بازنشانی میکند تا هیچ آیتمی آن را نداشته باشد. بدون آرگومان، شناسه آیتمی را که در حال حاضر فوکوس را دارد برمیگرداند، یا اگر هیچ آیتمی آن را نداشته باشد، یک رشته خالی برمیگرداند. یک آیتم تنها زمانی مکاننمای درج را نمایش میدهد که هم خود آن آیتم دارای فوکوس باشد و هم بوم آن فوکوس ورودی را داشته باشد.
این، Misc.focus() موروثی را میپوشاند؛ برای فوکوس کردن خود ابزارک از focus_set() استفاده کنید.
مکاننمای درج آیتمهای مشخصشده با tagOrId را دقیقاً پیش از نویسهی مشخصشده با index قرار دهید. آیتمهایی که از مکاننمای درج پشتیبانی نمیکنند، تحت تأثیر قرار نمیگیرند. مکاننما تنها زمانی نمایش داده میشود که آیتم فوکوس داشته باشد، اما میتوان موقعیت آن را در هر زمانی تنظیم کرد.
اندیس عددی در tagOrId را که متناظر با index است، بهصورت یک عدد صحیح برمیگرداند؛ index توصیفی متنی از یک موقعیت است (برای آیتمهای متنی، اندیسی در نویسهها، و برای آیتمهای خط و چندضلعی، اندیسی در مختصات). اگر tagOrId با چند آیتم مطابقت داشته باشد، از نخستین آیتمی که از اندیسدهی پشتیبانی کند استفاده میشود.
انتهای انتخاب در tagOrId را که به index نزدیکتر است، طوری تنظیم میکند که در index قرار گیرد، و انتهای دیگر را نقطهی لنگر برای فراخوانیهای بعدی select_to() قرار میدهد. اگر انتخاب در حال حاضر در tagOrId نباشد، مانند select_to() رفتار میکند.
اگر انتخاب در این بوم است، آن را پاک کنید؛ در غیر این صورت، هیچ کاری انجام ندهید.
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index در آیتم مشخصشده با tagOrId تنظیم کنید. این کار خود انتخاب را تغییر نمیدهد؛ بلکه پایان ثابتی را برای فراخوانیهای بعدی select_to() تعیین میکند.
شناسه آیتمی که انتخاب را در بر دارد برگردانید، یا اگر انتخاب در این بوم نباشد None برگردانید. برخلاف find() و متدهای find_*، این متد شناسه را بهجای عدد صحیح بهصورت رشته برمیگرداند.
انتخاب را روی نویسههای tagOrId بین نقطهی لنگر انتخاب و index، شامل خود index، تنظیم میکند. نقطهی لنگر همان نقطهای است که توسط آخرین فراخوانی select_adjust() یا select_from() تنظیم شده است.
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی scan_dragto() ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
بوم را به اندازهی gain برابرِ اختلاف میان x، y و مختصات ارسالشده به آخرین فراخوانی scan_mark() پیمایش کنید. این معمولاً به رویدادهای حرکت ماوس در ابزارک متصل میشود و جلوهی کشیدن بوم با سرعت بالا در پنجرهی خود را ایجاد میکند.
یک بازنمایی 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 میشوند.
ابزارک Checkbutton یک رشته متنی، بیتمپ یا تصویر را بههمراه یک مکاننما مربعی نمایش میدهد و هنگام فشرده شدن، باعث تغییر وضعیت یک انتخاب بولی میشود. این ابزارک تمام رفتار یک دکمه ساده را دارد و علاوه بر این، قابل انتخاب است: هنگام انتخاب، مکاننما با یک علامت تیک ترسیم میشود و متغیر مرتبط به onvalue تنظیم میشود، و هنگام لغو انتخاب، مکاننما خالی ترسیم میشود و متغیر به offvalue تنظیم میشود. این ابزارک از Widget ارث میبرد. علاوه بر گزینههای استاندارد ابزارک، ابزارک Checkbutton گزینههایی را میپذیرد که در صفحه راهنمای checkbutton در Tk مستند شدهاند، مانند variable، onvalue، offvalue و command.
دقیقاً همان کاری را انجام میدهد که اگر کاربر دکمهی انتخابی (checkbutton) را با ماوس فشار میداد، رخ میداد: وضعیت انتخاب دکمه را معکوس میکند و فرمان مرتبط را، در صورت وجود، فراخوانی میکند. نتیجهی فرمان را برمیگرداند، یا اگر فرمانی به دکمهی انتخابی مرتبط نباشد، یک رشتهی خالی برمیگرداند. اگر وضعیت دکمهی انتخابی disabled باشد، این عمل نادیده گرفته میشود.
دکمهی انتخابی را انتخاب کنید و متغیر مرتبط با آن را روی onvalue آن تنظیم کنید.
دکمهی انتخابی را از حالت انتخاب خارج کنید و متغیر مرتبط را روی offvalue آن تنظیم کنید.
وضعیت انتخاب دکمه را تغییر میدهد، آن را دوباره نمایش میدهد و متغیر مرتبط با آن را تغییر میدهد تا وضعیت جدید را منعکس کند.
دکمهی انتخابی را با نمایش دوبارهی آن چندین بار و جابهجایی متناوب بین رنگهای فعال و عادی، بهصورت چشمک درآورید. در پایان چشمک، دکمهی انتخابی در همان وضعیت عادی یا فعالی که در زمان فراخوانی متد داشت باقی میماند. اگر وضعیت دکمهی انتخابی disabled باشد، این عمل نادیده گرفته میشود.
یک ابزارک 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 در پنجره را میپوشاند). اندیسهای خارج از محدوده به نزدیکترین مقدار مجاز گرد میشوند.
نویسهها را از اندیس first تا پیش از اندیس last حذف میکند. اگر last ذکر نشود، تنها یک نویسه در اندیس first حذف میشود.
رشتهی فعلی ورودی را برمیگرداند.
string را درست پیش از نویسهای که با index مشخصشده است درج کنید.
ترتیبی دهید که مکاننمای درج درست پیش از نویسهی مشخصشده توسط index نمایش داده شود.
اندیس عددی متناظر با index را برمیگرداند.
انتهای انتخاب را که به نویسهی مشخصشده با index نزدیکتر است پیدا کنید و آن انتها را طوری تنظیم کنید که در index قرار گیرد (شامل آن، اما بدون عبور از آن)؛ انتهای دیگر به نقطهی لنگر برای فراخوانیهای آیندهی selection_to() تبدیل میشود. اگر انتخابی در ورودی وجود نداشته باشد، انتخاب جدیدی بین index و آخرین نقطهی لنگر، بهصورت شامل، ایجاد میشود. select_adjust() نام مستعار selection_adjust() است.
اگر انتخاب در حال حاضر در این ابزارک قرار دارد، آن را پاک میکند. اگر انتخاب در این ابزارک نباشد، این متد هیچ تأثیری ندارد. select_clear() نام مستعاری از selection_clear() است.
نکته
این، متد بهارثرسیدهی Misc.selection_clear() را میپوشاند، که انتخاب X را پاک میکند؛ آن متد روی یک Entry در دسترس نیست.
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index، بدون تغییر انتخاب، قرار میدهد. select_from() نام مستعاری برای selection_from() است.
اگر نویسههایی در ورودی انتخاب شده باشند، True را برمیگرداند، در غیر این صورت False را برمیگرداند. select_present() نام مستعاری برای selection_present() است.
انتخاب را طوری تنظیم کنید که شامل نویسههایی باشد که از نویسهی با اندیس start شروع میشود و به نویسهی درست پیش از end ختم میشود. اگر end به همان نویسهی start یا به نویسهای پیشتر از آن اشاره کند، انتخاب پاک میشود. select_range() نام مستعاری برای selection_range() است.
انتخاب بین نقطهی لنگر و index را تنظیم میکند: اگر index پیش از نقطهی لنگر باشد، انتخاب از index تا نقطهی لنگر ادامه دارد، بدون اینکه نقطهی لنگر را شامل شود؛ اگر index پس از آن باشد، از نقطهی لنگر تا index ادامه دارد، بدون اینکه index را شامل شود؛ اگر این دو بر هم منطبق باشند، اتفاقی رخ نمیدهد. نقطهی لنگر همان نقطهای است که آخرین فراخوانی selection_from() یا selection_adjust() آن را تنظیم کرده است. اگر انتخابی در ورودی وجود نداشته باشد، انتخاب جدیدی با استفاده از آخرین نقطهی لنگر ایجاد میشود. select_to() نام مستعاری از selection_to() است.
x و نمای فعلی را در پنجرهی ورودی ثبت میکند، برای استفاده در فراخوانیهای بعدی scan_dragto(). معمولاً با فشار دکمهی ماوس در ابزارک مرتبط است.
تفاوت میان x و x دادهشده به آخرین فراخوانی scan_mark() را محاسبه میکند و نما را به میزان ۱۰ برابر آن تفاوت به چپ یا راست تنظیم میکند. معمولاً با رویدادهای حرکت ماوس مرتبط است تا اثر کشیدن ورودی با سرعت بالا در پنجره را ایجاد کند.
ابزارک Frame یک ظرف ساده است. هدف اصلی آن این است که بهعنوان فاصلهگذار یا ظرفی برای چیدمانهای پیچیده پنجره عمل کند؛ تنها ویژگیهای آن، پسزمینه و یک حاشیه سهبعدی اختیاری برای برجسته یا فرورفته نشان دادن قاب است. از Widget ارث میبرد. برای فهرست کامل گزینهها به صفحه راهنمای frame در Tk مراجعه کنید.
ابزارک Label یک رشته متنی، بیتمپ یا تصویر را بهصورت غیرتعاملی نمایش میدهد. متن نمایشدادهشده با گزینه text تنظیم میشود یا از طریق textvariable به یک متغیر پیوند داده میشود، و میتوان یک تصویر را با گزینه image نمایش داد. تمام متن باید با یک قلم واحد باشد اما میتواند چند خط را اشغال کند، و میتوان یک نویسه را با گزینه underline زیرخطدار کرد. از Widget ارث میبرد. برای فهرست کامل گزینهها، به صفحهی راهنمای label در Tk مراجعه کنید.
ابزارک LabelFrame یک ظرف است که قابلیتهای Frame بهعلاوهی توانایی نمایش یک برچسب را دارد. متن برچسب با گزینهی text تنظیم میشود و موقعیت آن با labelanchor تعیین میشود، یا میتوان از یک ابزارک دلخواه بهعنوان برچسب استفاده کرد، با مشخص کردن آن بهعنوان گزینهی labelwidget. از Widget ارث میبرد. برای فهرست کامل گزینهها، به صفحهی راهنمای labelframe در Tk مراجعه کنید.
ابزارک 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 نیز اندیسهایی با همان قالبها هستند.
elements دادهشده را بهعنوان آیتمهای جدید، درست پیش از آیتم مشخصشده با index درج کنید. اگر index برابر 'end' باشد، آیتمهای جدید به انتهای فهرست افزوده میشوند.
آیتمهای بازهی first تا last، شامل هر دو، را حذف کنید. اگر last ذکر نشود، مقدار پیشفرض آن first است، بنابراین یک آیتم واحد حذف میشود.
اگر last حذف شود، محتوای آیتم مشخصشده با first را برمیگرداند، یا اگر first به آیتمی ناموجود اشاره کند، یک رشته خالی را برمیگرداند. اگر last داده شده باشد، یک تاپل از همهی آیتمهای بازهی first تا last را بهصورت شامل هر دو برمیگرداند.
تعداد کل آیتمهای موجود در جعبهفهرست را برمیگرداند.
این، Misc.size() موروثی را میپوشاند؛ برای اندازهی شبکه از grid_size() استفاده کنید.
مقدار اندیس متناظر با index را بهصورت عدد صحیح برمیگرداند، یا اگر index خارج از محدوده باشد، None را برمیگرداند. اگر index برابر 'end' باشد، نتیجه تعداد آیتمهای جعبهفهرست (listbox) است (نه اندیس آخرین آیتم).
یک تاپل (x, y, width, height) را برمیگرداند که جعبهی محدودکنندهی متنِ آیتم مشخصشده با index را بر حسب پیکسل، نسبت به ابزارک، توصیف میکند. اگر هیچ بخشی از آن آیتم روی صفحهنمایش نمایان نباشد، یا اگر index به یک آیتم ناموجود اشاره کند، None را برمیگرداند؛ اگر آیتم فقط تا حدی نمایان باشد، نتیجه همچنان ناحیهی کامل آیتم را، شامل بخشهایی که نمایان نیستند، میدهد.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه از grid_bbox() استفاده کنید.
با داشتن یک مختصات y درون پنجرهی listbox، اندیس نزدیکترین آیتم قابل مشاهده به آن مختصات y را برمیگرداند.
نما را طوری تنظیم کنید که آیتم مشخصشده با index قابل مشاهده باشد. اگر آیتم از قبل قابل مشاهده باشد، این متد هیچ تأثیری ندارد؛ اگر به لبهای از پنجره نزدیک باشد، جعبهفهرست (listbox) فقط به اندازهای پیمایش میشود تا آن را در همان لبه نمایان کند، در غیر این صورت جعبهفهرست پیمایش میشود تا آیتم را در مرکز قرار دهد.
آیتم فعال را به آیتمی که index آن را مشخص میکند، تنظیم کنید. اگر index خارج از بازه آیتمها باشد، در عوض نزدیکترین آیتم فعال میشود. آیتم فعال، زمانی که ابزارک فوکوس ورودی دارد، مطابق گزینه activestyle ترسیم میشود و میتوان اندیس آن را با اندیس 'active' بازیابی کرد.
یک تاپل شامل اندیسهای عددی تمام آیتمهایی که در حال حاضر انتخاب شدهاند برمیگرداند، یا اگر هیچ آیتمی انتخاب نشده باشد، یک تاپل خالی برمیگرداند.
لنگر انتخاب را روی آیتم مشخصشده توسط index تنظیم کنید. اگر index به آیتمی اشاره کند که وجود ندارد، از نزدیکترین آیتم استفاده میشود. لنگر انتخاب، انتهای انتخابی است که هنگام کشیدن ماوس برای ایجاد یک انتخاب ثابت میماند، و بعداً میتوان با اندیس 'anchor' به آن ارجاع داد. select_anchor() یک نام مستعار برای selection_anchor() است.
انتخاب هر یک از آیتمهای انتخابشده در بازهی first تا last (شامل هر دو) را لغو میکند. وضعیت انتخاب آیتمهای خارج از این بازه تغییر نمیکند. select_clear() نام مستعاری از selection_clear() است.
نکته
این، متد موروثی Misc.selection_clear() را میپوشاند، که گزینش X را پاک میکند؛ آن متد در Listbox در دسترس نیست.
اگر آیتم مشخصشده با index در حال حاضر انتخابشده باشد، True برمیگرداند، در غیر این صورت False. select_includes() نام مستعاری از selection_includes() است.
تمام آیتمهای بازهی first تا last را بهصورت شامل ابتدا و انتها انتخاب میکند، بدون آنکه بر وضعیت انتخاب آیتمهای خارج از آن بازه تأثیر بگذارد. select_set() نام مستعاری از selection_set() است.
مقدار فعلی گزینه پیکربندی option را برای آیتم دادهشده توسط index برمیگرداند.
گزینههای پیکربندی آیتم مشخصشده با index را بازیابی یا تغییر دهید. این مشابه configure() است، با این تفاوت که بهجای کل جعبهفهرست، بر یک آیتم منفرد اعمال میشود. بدون هیچ گزینهای، یک دیکشنری که گزینههای فعلی آیتم را توصیف میکند برمیگرداند؛ در غیر این صورت، گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده برای آیتم عبارتاند از background، foreground، selectbackground و selectforeground. itemconfig() یک نام مستعار برای itemconfigure() است.
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی scan_dragto() ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
جعبهفهرست را به اندازهی ۱۰ برابر اختلاف بین x، y و مختصات ارسالشده به آخرین فراخوانی scan_mark() پیمایش میکند. این معمولاً به رویدادهای حرکت ماوس در ابزارک متصل میشود و اثر کشیدهشدن فهرست با سرعت بالا درون پنجره را ایجاد میکند.
ابزارک Menu ستونی از آیتمها را نمایش میدهد که هر کدام میتوانند یک فرمان، یک دکمه علامتزنی، یک دکمه رادیویی، یک آیتم آبشاری (که یک زیرمنوی مرتبط را نمایش میدهد) یا یک جداکننده باشند. منوها بهعنوان نوار منوی یک پنجره سطح بالا، بهعنوان منوهای کشویی که از یک آیتم آبشاری یا دکمه منو نمایش داده میشوند، و بهعنوان منوهای بالاپر استفاده میشوند. از Widget ارث میبرد.
بسیاری از متدهای مربوط به ورودیها یک آرگومان اندیس دریافت میکنند که مشخص میکند روی کدام ورودی عمل شود. همانطور که در صفحه راهنمای menu در Tk توضیح داده شده است، اندیس میتواند یک اندیس عددی (با شمارش از ۰ از بالا)، 'active' (ورودی فعال فعلی)، 'end' یا 'last' (پایینترین ورودی)، 'none' (بدون هیچ ورودیای، که در Tcl بهصورت {} نوشته میشود)، @y (ورودیای که پیکسل با مختصات y برابر y در پنجره منو را میپوشاند)، یا الگویی که با برچسبهای ورودیها از بالا به پایین تطبیق داده میشود، باشد.
یک آیتم جدید به انتهای منو اضافه میکند. itemType یکی از 'command'، 'cascade'، 'checkbutton'، 'radiobutton' یا 'separator' است و نوع آیتم جدید را تعیین میکند؛ گزینههای باقیمانده آن را پیکربندی میکنند. متدهای کمکی add_command()، add_cascade()، add_checkbutton()، add_radiobutton() و add_separator() این متد را با itemType متناظر فراخوانی میکنند.
این مدخل با گزینههای زیر پیکربندی میشود، اگرچه هر گزینهای برای هر نوع مدخل صدق نمیکند (یک جداکننده هیچکدام از آنها را نمیپذیرد):
متن برای نمایش در ورودی.
تابعی که هنگام فراخوانی آیتم فراخوانی میشود (آیتمهای command، checkbutton و radiobutton).
رشتهای که در سمت راست آیتم نمایش داده میشود تا کلید شتابدهنده (accelerator keystroke) را نشان دهد؛ این رشته بهتنهایی اتصال را ایجاد نمیکند.
اندیس نویسهای در برچسب که برای پیمایش با صفحهکلید زیرخط میشود.
یکی از 'normal'، 'active' یا 'disabled'.
تصویری برای نمایش بهجای برچسب متنی، یا همراه با آن.
محل نمایش تصویر نسبت به متن: 'none' (پیشفرض)، 'text'، 'image'، 'top'، 'bottom'، 'left' یا 'right'.
یک بیتمپ برای نمایش بهجای برچسب متنی.
قلمی که برای متن استفاده میشود.
رنگهای پسزمینه و پیشزمینهی ورودی در حالت عادی خود (در macOS نادیده گرفته میشود).
رنگهای پسزمینه و پیشزمینهای که هنگام فعال بودن ورودی استفاده میشوند (در macOS نادیده گرفته میشوند).
اگر درست باشد، ورودی بهجای قرار گرفتن زیر ورودی قبلی، ستون جدیدی را آغاز میکند.
اگر مقدار true باشد، حاشیه استاندارد اطراف ورودی حذف میشود که زمانی مفید است که یک منو بهعنوان پالت استفاده شود.
زیرمنویی که توسط یک آیتم آبشاری نمایش داده میشود؛ باید فرزند این منو باشد.
متغیر مرتبط با ورودی دکمهی علامتی یا دکمهی رادیویی.
مقادیری که در variable ذخیره میشوند، هنگامی که یک آیتم دکمهی انتخابی انتخاب یا پاک میشود.
مقدار ذخیرهشده در variable هنگامی که یک آیتم دکمه رادیویی انتخاب میشود.
اینکه آیا مکاننما یک آیتم دکمهی انتخابی یا دکمهی رادیویی (radiobutton) نمایش داده شود یا خیر.
رنگ مکاننما آیتم دکمهی انتخابی یا دکمهی رادیویی هنگامی که انتخابشده است.
تصویری که هنگام انتخاب یک آیتم checkbutton یا radiobutton و در صورتی که image نیز داده شده باشد، نمایش داده میشود.
یک آیتم آبشاری جدید به انتهای منو اضافه کنید. یک آیتم آبشاری دارای یک زیرمنوی مرتبط است که با گزینه menu آن مشخص میشود و باید فرزند این منو باشد؛ نمایش آیتم، زیرمنو را در کنار آن نمایش میدهد.
یک آیتم دکمهی انتخابی جدید به انتهای منو اضافه کنید. هنگام فراخوانی، یک آیتم دکمهی انتخابی بین onvalue و offvalue خود جابهجا میشود، نتیجه را در variable مرتبط با خود ذخیره میکند و مکاننمای نمایش میدهد که نشان میدهد آیا انتخاب شده است یا خیر.
یک ورودی فرمان جدید به انتهای منو اضافه کنید. یک ورودی فرمان بسیار شبیه به یک دکمه رفتار میکند: هنگامی که فراخوانی میشود، کالبک دادهشده توسط گزینه command آن فراخوانی میشود.
یک آیتم دکمه رادیویی جدید به انتهای فهرست اضافه کنید. آیتمهای دکمه رادیویی که variable یکسانی دارند، گروهی را تشکیل میدهند که در هر زمان فقط یکی از آنها قابل انتخاب است؛ انتخاب یک آیتم، value آن را در متغیر ذخیره میکند.
یک جداکننده به پایین منو اضافه کنید. جداکننده بهصورت یک خط جداکنندهی افقی نمایش داده میشود و نمیتوان آن را فعال یا فراخوانی کرد.
مشابه add()، با این تفاوت که آیتم جدید درست پیش از آیتم مشخصشده با index درج میشود، نه اینکه به انتهای منو افزوده شود. itemType یکی از 'command'، 'cascade'، 'checkbutton'، 'radiobutton' یا 'separator' است. متدهای کمکی insert_command()، insert_cascade()، insert_checkbutton()، insert_radiobutton() و insert_separator() این متد را با itemType متناظر فراخوانی میکنند.
یک آیتم آبشاری (cascade) جدید پیش از آیتم مشخصشده با index درج کنید (به add_cascade() مراجعه کنید).
یک آیتم checkbutton جدید پیش از آیتم مشخصشده با index درج کنید (به add_checkbutton() مراجعه کنید).
یک آیتم فرمان جدید پیش از آیتم مشخصشده با index درج کنید (به add_command() مراجعه کنید).
یک آیتم دکمه رادیویی جدید را پیش از آیتم مشخصشده با index درج کنید (به add_radiobutton() مراجعه کنید).
یک جداکننده پیش از آیتم مشخصشده با index درج کنید (به add_separator() مراجعه کنید).
تمام آیتمهای منو از index1 تا index2 (شامل هر دو) را حذف کنید. اگر index2 ذکر نشود، مقدار پیشفرض آن index1 خواهد بود، بنابراین یک آیتم واحد حذف میشود. تلاشها برای حذف یک آیتم جداشدنی (tear-off) نادیده گرفته میشوند؛ در عوض، با تغییر گزینهی tearoff آن را حذف کنید.
مقدار فعلی گزینهی پیکربندی option را برای مدخل دادهشده با index برمیگرداند.
گزینههای پیکربندی آیتم مشخصشده با index را بپرسید یا تغییر دهید. این همانند configure() است، با این تفاوت که به یک آیتم منفرد اعمال میشود، نه به کل منو. بدون هیچ گزینهای، دیکشنریای را برمیگرداند که گزینههای فعلی آیتم را توصیف میکند؛ در غیر این صورت گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده همانهایی هستند که add() برای نوع آیتم میپذیرد. entryconfig() نام مستعاری از entryconfigure() است.
اندیس عددی متناظر با index را برمیگرداند، یا اگر index هیچ آیتمی را انتخاب نکند، None را برمیگرداند.
نوع آیتم مشخصشده با index را برمیگرداند: یکی از 'command'، 'cascade'، 'checkbutton'، 'radiobutton'، 'separator' یا 'tearoff' (برای آیتم tear-off).
آیتم مشخصشده توسط index را بهعنوان آیتم فعال قرار میدهد، آن را با رنگهای فعالش دوباره نمایش میدهد و هر آیتم فعال پیشین را غیرفعال میکند. اگر index هیچ آیتمی را انتخاب نکند، یا آیتم انتخابشده غیرفعال باشد، منو بدون آیتم فعال باقی میماند.
عملکرد ورودی مشخصشده با index را فراخوانی کنید، گویی که روی آن کلیک شده است. اگر ورودی غیرفعال باشد، اتفاقی نمیافتد. اگر ورودی دارای یک command مرتبط با آن باشد، نتیجه آن command برگردانده میشود؛ در غیر این صورت نتیجه یک رشته خالی است.
منو را بر روی صفحه در مختصات x و y پنجرهی ریشه نمایش میدهد و در صورت لزوم آنها را تنظیم میکند تا کل منو نمایان باشد. اگر گزینهی postcommand مشخص شده باشد، پیش از نمایش منو ارزیابی میشود.
منو را بهصورت یک منوی بازشو در مختصات x و y پنجرهی ریشه نمایش دهید. اگر entry داده شود، منو طوری قرار میگیرد که این آیتم زیر اشارهگر نمایش داده شود.
منو را از حالت نمایش خارج میکند تا دیگر نمایش داده نشود، همچنین هر زیرمنوی آبشاری سطح پایینتری را که نمایش داده شده است میبندد. این کار روی Windows و macOS تأثیری ندارد، زیرا این سیستمعاملها خودشان مدیریت بستن منوها را بر عهده دارند.
مختصات x چپترین پیکسلِ آیتم دادهشده توسط index را در پنجرهی منو برمیگرداند.
اضافه شده در نسخهی 3.3.
مختصات y بالاترین پیکسلِ آیتم مشخصشده با index را در پنجرهی منو برمیگرداند.
ابزارک Menubutton یک رشته متنی، بیتمپ یا تصویر را نمایش میدهد و هنگامی که کاربر آن را فشار میدهد، یک Menu مرتبط را که با گزینه menu آن مشخص شده است، باز میکند. مانند Label میتواند text، textvariable یا image را نمایش دهد و گزینه direction کنترل میکند که منو نسبت به دکمه کجا ظاهر شود. از Widget ارث میبرد. برای فهرست کامل گزینهها به صفحه راهنمای menubutton در Tk مراجعه کنید.
ابزارک Message یک رشته متنی غیرتعاملی را نمایش میدهد که با گزینه text داده شده یا از طریق textvariable به یک متغیر پیوند داده شده است. برخلاف Label، این ابزارک رشته را به چند خط میشکند تا نسبت ابعادی مشخصی به دست آید؛ شکست سطرها را در مرز واژهها انتخاب میکند و میتواند متن را چپ، وسط یا راست تراز کند. از Widget ارثبری میکند. برای فهرست کامل گزینهها به صفحهی راهنمای message در Tk مراجعه کنید.
یک زیرکلاس کمکی از Menubutton که یک منوی بازشو از گزینههای انحصاری متقابل را نمایش میدهد. variable یک Variable است که با انتخاب همگام نگه داشته میشود، value انتخاب اولیه است، و values سایر ورودیهای منو هستند. میتوان برای آرگومان کلیدواژهای command یک کالبک تعیین کرد که با مقدار انتخابشده فراخوانی میشود، و آرگومان کلیدواژهای name نام ابزارک Tk را تنظیم میکند.
ابزارک را نابود میکند و منوی بازشوی مرتبط را نیز پاکسازی میکند.
تغییر یافته در نسخهی 3.14: پشتیبانی از آرگومان کلیدواژهای name افزوده شد.
یک PanedWindow ابزارک مدیریت چیدمان است که هر تعداد از قابهای فرزند (pane) را در یک ردیف (هنگامی که orient برابر 'horizontal' باشد) یا یک ستون (هنگامی که orient برابر 'vertical' باشد) میچیند. هر قاب یک ابزارک را در خود نگه میدارد، و هر جفت قاب مجاور با یک نوار جداکنندهی متحرک (sash) از هم جدا میشود که کاربر میتواند آن را با ماوس بکشد تا اندازهی ابزارکهای دو طرف آن تغییر کند. از Widget ارث میبرد.
گزینهی orient جهت چیدمان را مشخص میکند، sashwidth عرض هر نوار جداکننده را تنظیم میکند و sashrelief برجستگی آن را تعیین میکند. هنگامی که showhandle true باشد، دستهی کوچکی روی هر نوار جداکننده رسم میشود که کاربر میتواند با گرفتن آن، نوار جداکننده را بکشد. برای فهرست کامل گزینهها به صفحهی راهنمای panedwindow در Tk مراجعه کنید.
child را به panedwindow بهعنوان یک بخش جدید اضافه کنید، که پس از بخشهای موجود قرار میگیرد. آرگومانهای کلیدواژهای گزینههای مدیریتی بهازای هر بخش را برای child مشخص میکنند؛ این آرگومانها میتوانند هر یک از گزینههای پذیرفتهشده توسط paneconfigure() باشند.
بخش حاوی child را از panedwindow حذف میکند. همهی گزینههای مدیریت هندسی برای child فراموش میشوند. forget() نام مستعار remove() است. این کار forget() ارثبریشده از مدیر هندسی را میپوشاند؛ برای حذف خود ابزارک از مدیرش، از pack_forget()، grid_forget() یا place_forget() استفاده کنید.
یک تاپل از ابزارکهای مدیریتشده توسط panedwindow را، یکی بهازای هر بخش، به ترتیب برمیگرداند.
مقدار فعلی گزینهی مدیریت option برای بخش شامل child را برمیگرداند. option میتواند هر مقداری باشد که paneconfigure() مجاز میداند.
گزینههای مدیریت بخش حاوی ابزارک tagOrId را بخوانید یا تغییر دهید. بدون هیچ گزینهای، یک دیکشنری برمیگرداند که همه گزینههای در دسترس برای بخش را توصیف میکند؛ اگر یک نام گزینه بهصورت یک رشته داده شود، توصیف همان گزینه را برمیگرداند؛ در غیر این صورت، گزینههای دادهشده را تنظیم میکند. گزینههای پشتیبانیشده شامل after و before (درج بخش بعد از یا قبل از یک پنجره مدیریتشده دیگر)، height و width (ابعاد بیرونی پنجره، شامل هرگونه حاشیه)، minsize (حداقل اندازه در بعد بخشبندی)، padx و pady (فضای اضافی که در هر طرف پنجره باقی میماند)، sticky (جایدهی یا کشش پنجره درون بخشی بیشازاندازه، با استفاده از رشتهای از نویسههای n، s، e و w)، hide (پنهان کردن بخش ضمن نگهداشتن آن در فهرست بخشها) و stretch (نحوه تخصیص فضای اضافی به بخش: یکی از 'always'، 'first'، 'last'، 'middle' یا 'never') میشوند. paneconfig() نام مستعاری از paneconfigure() است.
کامپوننت panedwindow زیر نقطهی دادهشده با x و y در مختصات پنجره را شناسایی میکند. اگر نقطه روی یک نوار جداکننده یا دستهی نوار جداکننده (sash handle) باشد، نتیجه یک تاپل دو عنصری است که شامل اندیس نوار جداکننده یا دسته و واژهای است که نشان میدهد نقطه روی یک نوار جداکننده است یا یک دسته، مانند (0, 'sash') یا (2, 'handle'). اگر نقطه روی هر بخش دیگری از panedwindow باشد، نتیجه یک رشته خالی است.
موقعیت نوارهای جداکننده را در panedwindow دریافت یا تغییر دهید. این یک پوشش نازک حول زیردستور sash در Tk است؛ بهطور معمول بهجای آن باید از متدهای راحتی sash_coord()، sash_mark() و sash_place() استفاده شود.
جفت مختصات x و y فعلی برای نوار جداکننده مشخصشده با index را برمیگرداند، که باید یک عدد صحیح بین ۰ و یک واحد کمتر از تعداد بخشهای موجود در panedwindow باشد. مختصات برگرداندهشده، مختصات گوشه بالا سمت چپ ناحیهای است که نوار جداکننده را در بر دارد.
موقعیت فعلی ماوس را برای نوار جداکننده مشخصشده با index ثبت میکند، تا همراه با عملیاتهای بعدی کشیدن sash برای جابهجایی sash استفاده شود.
نوار جداکننده مشخصشده با index را در مختصات x و y قرار دهید.
موقعیت پراکسی نوار جداکننده (sash proxy) را بخوانید یا تغییر دهید؛ همان نوار جداکنندهی «شبح» که هنگام کشیدهشدن یک نوار جداکننده با تغییر اندازهی غیرشفاف نمایش داده میشود. این پوششی نازک بر زیردستور proxy Tk است؛ معمولاً باید بهجای آن از متدهای سهولتبخش proxy_coord()، proxy_forget() و proxy_place() استفاده شود.
یک تاپل شامل مختصات x و y آخرین موقعیت پراکسی را برمیگرداند.
پراکسیرا از نمایشگر حذف کنید.
پراکسی را در مختصات x و y قرار دهید.
ابزارک Radiobutton یک رشتهی متنی، بیتمپ یا تصویر را بههمراه یک مکاننما لوزی یا دایرهای نمایش میدهد و یکی از چند گزینه را انتخاب میکند. این ابزارک همهی رفتار یک دکمهی ساده را دارد و علاوه بر این، قابل انتخاب است: معمولاً چند دکمهی رادیویی یک variable مشترک دارند و انتخاب یکی، آن variable را روی value آن دکمهی رادیویی تنظیم میکند؛ هر دکمهی رادیویی همچنین variable را پایش میکند و هنگام تغییر variable، بهطور خودکار خود را انتخاب یا لغو انتخاب میکند. از Widget ارث میبرد. علاوه بر گزینههای استاندارد ابزارک، یک دکمهی رادیویی گزینههای مستندشده در صفحهی راهنمای radiobutton در Tk را میپذیرد، از جمله variable، value و command.
دقیقاً همان کاری را انجام میدهد که اگر کاربر دکمهی رادیویی را با ماوس فشار میداد، رخ میداد: دکمه را انتخاب میکند و فرمان مرتبط را، در صورت وجود، فراخوانی میکند. نتیجهی فرمان را برمیگرداند، یا اگر فرمانی به دکمهی رادیویی مرتبط نباشد، یک رشتهی خالی برمیگرداند. اگر وضعیت دکمهی رادیویی disabled باشد، این نادیده گرفته میشود.
دکمه رادیویی را انتخاب کنید و متغیر مرتبط را روی مقدار متناظر با این ابزارک تنظیم کنید.
دکمه رادیویی را از حالت انتخاب خارج کنید و متغیر مرتبط را به یک رشته خالی تنظیم کنید. اگر این دکمه رادیویی در حال حاضر انتخاب نشده باشد، این عمل تأثیری ندارد.
دکمه رادیویی را با نمایش مجدد چندباره، بهصورت متناوب بین رنگهای فعال و عادی، به حالت چشمکزن درمیآورد. در پایان چشمک، دکمه رادیویی در همان وضعیت عادی یا فعالی که در زمان فراخوانی متد داشت باقی میماند. اگر وضعیت دکمه رادیویی disabled باشد، این عمل نادیده گرفته میشود.
ابزارک Scale به کاربر اجازه میدهد با جابهجا کردن یک لغزنده در طول یک شیار، یک مقدار عددی را انتخاب کند. این ابزارک میتواند بهصورت عمودی یا افقی جهتدهی شود و بهصورت اختیاری یک برچسب و مقدار فعلی را نمایش دهد. از Widget ارث میبرد.
علاوه بر گزینههای استاندارد ابزارک، یک مقیاس (scale) گزینههای مستندشده در صفحهی راهنمای scale در Tk را میپذیرد، مانند from_، to، resolution، orient، tickinterval، variable و command. مانند سایر بخشهای tkinter، - ابتدای نام گزینهی Tk حذف میشود؛ from بهصورت from_ نوشته میشود، زیرا from یک کلیدواژهی پایتون است.
برای resolution غیر از عدد صحیح، مقادیر عددی و locale را ببینید.
مقدار فعلی مقیاس را برمیگرداند. اگر resolution مقیاس اعداد حسابی تولید کند، نتیجه یک عدد صحیح است و در غیر این صورت یک float است.
مقیاس را روی value تنظیم میکند و لغزنده را متناسب با آن جابهجا میکند. اگر مقیاس غیرفعال باشد، این عمل تأثیری ندارد.
یک تاپل (x, y) برمیگرداند که مختصات پیکسلی نقطهای روی خط مرکزی شیار را نسبت به ابزارک میدهد؛ این نقطه با value متناظر است. اگر value حذف شود، از مقدار فعلی مقیاس استفاده میشود.
رشتهای را برمیگرداند که بخشی از مقیاس را در مختصات پیکسلی x و y توصیف میکند: 'slider'، 'trough1' (بخشی از شیار که بالای لغزنده یا سمت چپ آن قرار دارد)، 'trough2' (بخشی از شیار که پایین یا سمت راست لغزنده قرار دارد)، یا یک رشته خالی اگر نقطه بر روی هیچیک از این عناصر قرار نداشته باشد.
ابزارک Scrollbar یک لغزنده و دو پیکان را نمایش میدهد که به کاربر امکان پیمایش یک ابزارک مرتبط را میدهند، مانند Listbox، Text، Canvas یا Entry. این ابزارک با تنظیم گزینهی xscrollcommand یا yscrollcommand ابزارک پیمایششده روی متد set() نوار پیمایش، و گزینهی command نوار پیمایش روی متد xview() یا yview() همان ابزارک، به آن متصل میشود. از Widget ارثبری میکند.
تنظیمات فعلی نوار پیمایش را بهصورت یک تاپل (first, last) از دو کسر بین ۰ و ۱ برمیگرداند که توصیفکننده بخشی از سند است که در حال حاضر قابل مشاهده است، همانگونه که آخرین بار به set() ارسال شده است.
نوار پیمایش را تنظیم میکند. first و last مقادیر کسری بین ۰ و ۱ هستند که موقعیت آغاز و پایان بخش نمایان سند مرتبط را مشخص میکنند. این متد معمولاً بهعنوان xscrollcommand یا yscrollcommand ابزارک پیمایششده ثبت میشود و توسط آن ابزارک فراخوانی میشود.
المان index (یکی از 'arrow1'، 'slider' یا 'arrow2') را بهعنوان فعال علامتگذاری میکند و آن را مطابق گزینههای activebackground و activerelief نمایش میدهد. اگر index حذف شود، نام المان فعال کنونی را برمیگرداند، یا اگر هیچ المانی فعال نباشد None را برمیگرداند.
تغییر یافته در نسخهی 3.5: آرگومان index اکنون اختیاری شده است.
یک عدد اعشاری برمیگرداند که نشاندهندهی تغییر کسری در تنظیم نوار پیمایش است و متناظر با جابهجایی لغزنده به اندازهی deltax پیکسل بهصورت افقی (برای نوارهای پیمایش افقی) یا deltay پیکسل بهصورت عمودی (برای نوارهای پیمایش عمودی) است.
یک float بین ۰ و ۱ برمیگرداند که نشان میدهد نقطهای با مختصات پیکسلی x، y در کجای شیار (trough) قرار دارد: ۰ متناظر با بالا یا چپ شیار و ۱ متناظر با پایین یا راست آن است.
نام عنصر واقع در مختصات پیکسلی x، y (مانند 'arrow1') را برمیگرداند، یا اگر نقطه در هیچ عنصری از نوار پیمایش قرار نداشته باشد، یک رشته خالی برمیگرداند.
یک ابزارک 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 در پنجره را پوشش میدهد) باشد.
رشتهی اسپینباکس (spinbox) را برمیگرداند.
نویسههای رشتهی s را درست پیش از نویسهی مشخصشده با index درج کنید.
حذف یک یا چند نویسه از اسپینباکس . first اندیس اولین نویسه برای حذف است، و last اندیس نویسهای است که درست پس از آخرین نویسه برای حذف قرار دارد. اگر last ذکر نشود، تنها یک نویسه در first حذف میشود.
ترتیبی دهید که مکاننمای درج درست پیش از نویسهی مشخصشده توسط index نمایش داده شود.
اندیس عددی متناظر با index را بهصورت یک رشته برمیگرداند.
یک تاپل از چهار عدد صحیح (x, y, width, height) برمیگرداند که جعبهی محدودکننده نویسهی متناظر با index را توصیف میکند. x و y مختصات پیکسلی گوشهی بالا-چپ نویسه نسبت به ابزارک هستند و width و height اندازههای آن بر حسب پیکسل هستند. جعبهی محدودکننده ممکن است به ناحیهای خارج از ناحیهی قابلمشاهدهی پنجره اشاره داشته باشد.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه از grid_bbox() استفاده کنید.
نام المان پنجره را در مختصات پیکسلی x، y برمیگرداند: یکی از 'buttondown'، 'buttonup'، 'entry' یا 'none'.
دکمه چرخشی (spin button) دادهشده توسط element را، که یا 'buttonup' است یا 'buttondown'، فراخوانی کنید تا عمل مرتبط با آن راهاندازی شود.
یک پوشش نازک حول زیردستور scan ابزارک Tk، که برای پیادهسازی کشیدن سریع نما به کار میرود: scan('mark', x) x و نمای فعلی را ثبت میکند، و scan('dragto', x) نما را نسبت به آن نشان تنظیم میکند. متدهای scan_mark() و scan_dragto() این دو شکل را پوشش میدهند.
x و نمای فعلی را در پنجرهی اسپینباکس ثبت کنید تا در یک فراخوانی بعدی scan_dragto() استفاده شود. این معمولاً با فشردهشدن یک دکمهی ماوس در ابزارک مرتبط است.
نما را به اندازهی ۱۰ برابر اختلاف بین x و x ارسالشده به آخرین فراخوانی scan_mark() تنظیم میکند. این معمولاً با رویدادهای حرکت ماوس مرتبط است و اثر کشیدن اسپینباکس با سرعت بالا از میان پنجره را ایجاد میکند.
پوششی نازک پیرامون زیردستور 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() این شکلها را پوشش میدهند.
نزدیکترین انتهای انتخاب به نویسهی مشخصشده با index را پیدا میکند و آن انتهای انتخاب را طوری تنظیم میکند که در index باشد (شامل خود index، اما نه فراتر از آن). انتهای دیگر به نقطهی لنگر برای فراخوانیهای آیندهی selection_to() تبدیل میشود. اگر انتخاب در حال حاضر در اسپینباکس وجود نداشته باشد، انتخاب جدیدی ایجاد میشود که نویسههای بین index و آخرین نقطهی لنگر را بهصورت فراگیر در بر گیرد.
اگر انتخاب در حال حاضر در این ابزارک باشد، آن را پاک میکند. اگر انتخاب در این ابزارک نباشد، این متد هیچ اثری ندارد.
نکته
این، متد موروثی Misc.selection_clear() را میپوشاند، که گزینش X را پاک میکند؛ آن متد در Spinbox در دسترس نیست.
المان انتخابشدهی کنونی را تنظیم یا دریافت کنید. اگر element (یکی از 'buttonup'، 'buttondown' یا 'none') داده شود، آن دکمه چرخشی (spin button) انتخاب میشود و بهصورت فشرده نمایش داده میشود؛ در غیر این صورت، نام المان انتخابشدهی کنونی برگردانده میشود.
نقطهی لنگر انتخاب را درست پیش از نویسهی مشخصشده با index تنظیم کنید، بدون آنکه خود انتخاب تغییر کند.
اضافه شده در نسخهی 3.8.
اگر نویسههایی در اسپینباکس انتخاب شده باشند، True برمیگرداند، در غیر این صورت False.
اضافه شده در نسخهی 3.8.
انتخاب را طوری تنظیم کنید که شامل نویسههایی باشد که از نویسهای با اندیس start شروع میشود و با نویسهای درست پیش از end پایان مییابد. اگر end به همان نویسهی start یا نویسهای پیش از آن اشاره کند، انتخاب پاک میشود.
اضافه شده در نسخهی 3.8.
انتخاب را بین index و نقطهی لنگر تنظیم میکند. اگر index پیش از نقطهی لنگر باشد، انتخاب از index شروع میشود و تا نقطهی لنگر ادامه مییابد، اما نقطهی لنگر را شامل نمیشود؛ اگر پس از آن باشد، انتخاب از نقطهی لنگر شروع میشود و تا index ادامه مییابد، اما index را شامل نمیشود؛ اگر یکسان باشد، هیچ اتفاقی نمیافتد. نقطهی لنگر همان نقطهای است که توسط آخرین فراخوانی selection_from() یا selection_adjust() تنظیم شده است. اگر انتخاب در این ابزارک وجود نداشته باشد، انتخاب جدیدی با استفاده از آخرین نقطهی لنگر ایجاد میشود.
اضافه شده در نسخهی 3.8.
ابزارک Text متن چندخطی را نمایش و ویرایش میکند. بخشهایی از متن را میتوان با برچسبها سبکدهی کرد، موقعیتهای خاصی را میتوان با نشانهای شناور حاشیهنویسی کرد، و تصاویر دلخواه و ابزارکهای دیگر را میتوان در متن تعبیه کرد. این ابزارک همچنین سازوکار نامحدود واگرد/ازنو را ارائه میدهد و از ابزارکهای همتایی پشتیبانی میکند که دادههای زیربنایی یکسانی را به اشتراک میگذارند. از Widget، XView و YView ارث میبرد، بنابراین میتوان نما را بهصورت افقی و عمودی با xview() و yview() پیمایش کرد. برای فهرست کامل گزینهها به صفحه راهنمای text Tk مراجعه کنید.
بیشتر متدها یک یا چند آرگومان اندیس میگیرند که موقعیتی را در متن مشخص میکنند. همانطور که در صفحهی راهنمای text Tk توضیح داده شده است، اندیس رشتهای است که از یک پایه تشکیل شده و بهصورت اختیاری یک یا چند اصلاحکننده در ادامهی آن میآید. پایه میتواند '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'.
رشتهی chars را درست پیش از نویسهی موجود در index درج کنید (اگر index برابر 'end' باشد، درست پیش از نویسهی خط جدید پایانی). بهطور پیشفرض، متن جدید هر برچسب موجود در هر دو طرف نقطهی درج را به ارث میبرد. اگر args داده شود، شامل مقادیر متناوب tagList و chars است: مقدار chars پیشین دقیقاً برچسبهای فهرستشده را دریافت میکند (فهرست برچسب میتواند یک نام برچسب منفرد یا دنبالهای از نامها باشد) و برچسبهای اطراف را نادیده میگیرد.
بازهای از نویسهها را از index1 تا index2 حذف میکند، بدون اینکه index2 را شامل شود. اگر index2 ذکر نشود، نویسهی منفرد واقع در index1 حذف میشود. ابزارک همیشه یک نویسهی خط جدید را بهعنوان آخرین نویسهی خود نگه میدارد، بنابراین حذفی که باعث حذف آن شود، متناسب با آن تنظیم میشود.
بازهای از نویسهها از index1 تا index2، بدون شامل شدن index2، را با chars جایگزین میکند. این معادل یک delete() و به دنبال آن یک insert() در index1 است؛ args مانند insert() تفسیر میشود.
اضافه شده در نسخهی 3.3.
متن را از index1 تا index2، اما بدون شامل شدن index2، به صورت یک رشته برمیگرداند. اگر index2 حذف شده باشد، نویسهی منفرد در index1 را برمیگرداند. تصاویر و پنجرههای تعبیهشده از نتیجه حذف میشوند.
موقعیت متناظر با index را در قالب متعارف 'line.char' برمیگرداند.
موقعیتهای index1 و index2 را با استفاده از عملگر رابطهای op مقایسه میکند، که باید یکی از '<'، '<='، '=='، '>='، '>' یا '!=' باشد، و نتیجه بولی را برمیگرداند.
تعداد آیتمهای انواع درخواستی بین index1 و index2 را میشمارد؛ اگر index1 بعد از index2 باشد، شمارش منفی است. هر یک از options نوعی از آیتم را برای شمارش مشخص میکند: 'chars'، 'displaychars'، 'displayindices'، 'displaylines'، 'indices'، 'lines'، 'xpixels' یا 'ypixels' (پیشفرض، که وقتی گزینهای داده نشود استفاده میشود، 'indices' است). شبهگزینه 'update' باعث میشود هرگونه اطلاعات چیدمان قدیمی پیش از ارزیابی گزینههای بعدی دوباره محاسبه شود. هنگامی که return_ints درست باشد و تنها یک گزینه شمارش داده شود، یک عدد صحیح ساده برمیگرداند؛ در غیر این صورت یک تاپل با یک عدد صحیح به ازای هر گزینه شمارش برمیگرداند (یا اگر نتیجه خالی باشد، None).
اضافه شده در نسخهی 3.3.
تغییر یافته در نسخهی 3.13: پارامتر return_ints اضافه شد.
نما را طوری تنظیم میکند که نویسهی مشخصشده با index قابل مشاهده باشد. اگر از قبل قابل مشاهده باشد، این متد هیچ تأثیری ندارد؛ اگر در فاصلهی کمی خارج از دید باشد، ابزارک فقط به اندازهای پیمایش میکند که آن را به نزدیکترین لبه برساند، در غیر این صورت پیمایش میکند تا index را در وسط پنجره قرار دهد.
یک تاپل (x, y, width, height) برمیگرداند که جعبهی محدودکننده بخش قابلمشاهدهی نویسه در اندیس index را بر حسب پیکسل مشخص میکند، یا اگر آن نویسه روی صفحهنمایش قابلمشاهده نباشد None برمیگرداند.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبهی محدودکننده شبکه از grid_bbox() استفاده کنید.
یک تاپل (x, y, width, height, baseline) برمیگرداند که خط نمایشی حاوی index را توصیف میکند: چهار مقدار اول جعبهی محدودکنندهی خط را بر حسب پیکسل میدهند و baseline فاصلهی خط کرسی را که از بالای ناحیه به سمت پایین اندازهگیری میشود، میدهد. اگر آن خط نمایش روی صفحه قابل مشاهده نباشد، None برمیگرداند.
نشان (mark) با نام markName را در موقعیتی درست پیش از نویسهای که در index قرار دارد تنظیم میکند و در صورتی که این نشان از پیش وجود نداشته باشد، آن را ایجاد میکند. نشانی که به این روش ایجاد شود، بهطور پیشفرض دارای گرانش راست (right gravity) است.
هر یک از نشانهای نامبردهشده در markNames را حذف کنید. نشانهای ویژهی insert و current قابل حذف نیستند.
یک تاپل از نامهای تمام نشانهایی که در حال حاضر در ابزارک تنظیم شدهاند برمیگرداند.
اگر direction حذف شود، گرانی (gravity) نشان markName را برمیگرداند؛ این مقدار یا 'left' است یا 'right'. در غیر این صورت، گرانی آن را روی direction تنظیم میکند. گرانی مشخص میکند که متن درجشده در موقعیت نشان، در کدام سمت نشان ظاهر میشود: نشانی با گرانی راست (پیشفرض) در سمت راست چنین متنی باقی میماند.
نام اولین نشان در index یا پس از آن را برمیگرداند، یا اگر هیچ نشانی وجود نداشته باشد، None را برمیگرداند. هنگامی که index نام یک نشان باشد، جستجو درست پس از آن نشان شروع میشود.
نام آخرین نشان در index یا پیش از آن برگردانده میشود، یا اگر نشانی وجود نداشته باشد، None برگردانده میشود. هنگامی که index نام یک نشان باشد، جستجو درست پیش از آن نشان آغاز میشود.
برچسب tagName را به بازهی نویسهها از index1 تا اندیس بعدی در args، اما بدون شامل شدن آن اندیس، اضافه کنید. ممکن است جفتهای بیشتری از اندیسها در args بیایند تا بازههای بیشتری برچسبگذاری شوند؛ یک اندیس واحد پایانی، فقط نویسهی همان اندیس را برچسبگذاری میکند.
برچسب tagName را از نویسهها، از index1 تا index2، اما بدون شامل شدن index2، حذف میکند (یا اگر index2 حذف شده باشد، از نویسهی واحد در index1). خود برچسب حتی اگر هیچ نویسهای آن را نداشته باشد، همچنان وجود دارد.
هر یک از برچسبهای نامبردهشده در tagNames را حذف کنید، آنها را از تمام نویسهها بردارید و گزینهها و مقیدسازیهای آنها را دور بیندازید.
گزینههای پیکربندی برچسب tagName را بخوانید یا تغییر دهید. این روش مشابه configure() است، با این تفاوت که بهجای کل ابزارک، به یک برچسب اعمال میشود: بدون هیچ گزینهای، دیکشنریای که گزینههای فعلی را توصیف میکند برمیگرداند، در غیر این صورت گزینههای دادهشده را تنظیم میکند. تعریف یک برچسب به این روش همچنین به آن اولویتی بالاتر از هر برچسب موجود میدهد.
گزینههای برچسب پشتیبانیشده، که همگی ظاهر متن برچسبگذاریشده را کنترل میکنند، عبارتند از:
قلمی که برای متن استفاده میشود.
رنگ مورد استفاده برای متن.
رنگی که برای ناحیه پشت متن استفاده میشود.
بیتمپهایی که برای نقطهنگاری کردن پیشزمینه (متن) و پسزمینه استفاده میشوند؛ فقط در X11 بهخوبی پشتیبانی میشوند.
پهنای حاشیهای که اطراف متن بر اساس relief ترسیم میشود (پیشفرض 0).
نمای سهبعدی حاشیهی متن: 'flat' (پیشفرض)، 'raised'، 'sunken'، 'ridge'، 'groove' یا 'solid'.
میزانی که متن بالاتر از خط کرسی (یا، اگر منفی باشد، پایینتر از آن) قرار میگیرد، برای بالانویسها و زیرنویسها.
اینکه آیا متن زیرخطدار شود (یک مقدار بولی).
رنگ زیرخط؛ بهطور پیشفرض برابر با رنگ متن است.
اینکه آیا سطری از میان متن کشیده شود یا خیر.
رنگ خط خطخوردگی؛ بهطور پیشفرض برابر با رنگ متن است.
اینکه متن حذفشده (پنهان) است.
نحوهی تراز کردن نخستین نویسهی یک خط نمایشی: 'left' (پیشفرض)، 'right' یا 'center'.
چگونگی شکستن سطرهایی که بیش از حد طولانی هستند: 'char'، 'word' یا 'none'.
میزان تورفتگی، بر حسب پیکسل، برای اولین خط نمایشیِ یک خط منطقی و برای سایر سطرهای نمایشی.
رنگ ناحیهی حاشیهی چپ.
حاشیه سمت راست، بر حسب پیکسل.
رنگ ناحیهی حاشیهی راست.
فضای اضافی، بر حسب پیکسل، بالای اولین خط نمایشی از یک خط منطقی، بین سطرهای نمایشی آن، و پایین آخرین خط نمایشی آن.
مجموعهی نقاط توقف تب، در همان قالب گزینهی tabs ابزارک.
چگونگی تفسیر ایستگاههای تب (tab stops): 'tabular' یا 'wordprocessor'.
رنگهای پسزمینه و پیشزمینهای که برای متن در حالت انتخابشده استفاده میشوند.
نکته
Tk 8.6 گزینههای lmargincolor، overstrikefg، rmargincolor، selectbackground، selectforeground و underlinefg را افزود.
tag_config() نام مستعاری از tag_configure() است.
مقدار فعلی گزینهی پیکربندی option برای برچسب tagName را برمیگرداند.
اگر index حذف شود، تاپلی از نامهای همهی برچسبهای تعریفشده در ابزارک برمیگرداند؛ در غیر این صورت، فقط نامهای برچسبهای اعمالشده بر نویسهی موجود در index را برمیگرداند. نامها از کمترین اولویت به بیشترین اولویت مرتب شدهاند.
یک تاپل از اندیسها برمیگرداند که همهی بازههای متن برچسبگذاریشده با tagName را توصیف میکند. نتیجه اندیسهای شروع و پایان را بهصورت یکدرمیان شامل میشود، بهطوری که عناصر 2*i و 2*i+1 کرانهای بازهی i-ام هستند.
از index1 به جلو (تا index2 در صورت داده شدن) جستجو میکند تا اولین محدوده از نویسههای برچسبگذاریشده با tagName را بیابد، و یک تاپل دو عنصری از اندیسهای شروع و پایان آن برمیگرداند، یا اگر چنین محدودهای وجود نداشته باشد، یک تاپل خالی برمیگرداند.
از index1 به عقب (تا index2 در صورت ارائه شدن) نزدیکترین بازه پیشین از نویسههای برچسبگذاریشده با tagName را جستجو میکند و یک تاپل دو عنصری از اندیسهای آغاز و پایان آن برمیگرداند، یا اگر چنین بازهای وجود نداشته باشد یک تاپل خالی برمیگرداند.
اولویت برچسب tagName را بالا میبرد تا درست بالاتر از اولویت aboveThis قرار گیرد، یا اگر aboveThis حذف شود، آن را به بالاترین اولویت در میان تمام برچسبها میرساند. هنگامی که گزینههای نمایش برچسبهای همپوشان با یکدیگر تعارض داشته باشند، برچسب با اولویت بالاتر برنده میشود.
اولویت برچسب tagName را کاهش دهید، بهگونهای که دقیقاً پایینتر از اولویت belowThis قرار گیرد، یا اگر belowThis ذکر نشود، به پایینترین اولویت همه برچسبها برسد.
رویداد sequence را برای نویسههایی که با tagName برچسبگذاری شدهاند، به کالبک func متصل میکند، بهطوریکه func هنگام وقوع آن رویداد روی چنین نویسهای فراخوانی میشود. اگر add درست باشد، اتصال در کنار هرگونه اتصال موجود برای sequence اضافه میشود، در غیر این صورت آنها را جایگزین میکند. مانند bind() کار میکند و شناسه اتصال جدید را برمیگرداند.
اتصالهای رویداد sequence را برای نویسههای برچسبگذاریشده با tagName حذف میکند. اگر funcid داده شود، فقط همان اتصال (که توسط tag_bind() برگردانده شده است) حذف میشود و کالبک آن از ثبت خارج میشود.
تغییر یافته در نسخهی 3.13: اگر funcid داده شده باشد، فقط همان کالبک از اتصال خارج میشود.
تصویری را در index تعبیه میکند و نام اختصاصدادهشده به این نمونه تصویر را برمیگرداند؛ سپس میتوان از آن بهعنوان اندیس استفاده کرد یا آن را به سایر متدهای image_* ارسال کرد. گزینههای دادهشده در cnf و kw شامل image (تصویر Tk برای نمایش)، name (نام پایه برای نمونه)، align، padx و pady هستند.
مقدار فعلی گزینهی پیکربندی option برای تصویر تعبیهشده در اندیس index را برمیگرداند.
گزینههای پیکربندی تصویر تعبیهشده در index را دریافت یا تغییر دهید؛ مانند configure() اما بر آن تصویر اعمال میشود.
یک تاپل از نامهای همهی تصاویر تعبیهشده در ابزارک را بازمیگرداند.
نکته
این، متد موروثی Misc.image_names() را میپوشاند، که نام تمام تصاویر در مفسر Tcl را برمیگرداند؛ آن متد برای یک Text در دسترس نیست.
یک پنجره (هر ابزارکی) را در index تعبیه کنید. گزینههای ارائه شده در cnf و kw عبارتند از window (ابزارکی که باید تعبیه شود)، create (یک کالبک که ابزارک را بر اساس تقاضا ایجاد میکند)، align، گزینهی بولی stretch (اینکه آیا ابزارک به صورت عمودی به ارتفاع سطر کشیده میشود یا خیر)، padx و pady. ابزارک تعبیهشده باید فرزندی از والد ابزارک متن باشد.
مقدار فعلی گزینهی پیکربندی option را برای پنجرهی تعبیهشده در اندیس index برمیگرداند.
گزینههای پیکربندی پنجرهی تعبیهشده در index را بخوانید یا تغییر دهید، مانند configure() اما برای آن پنجره اعمال میشود.
window_config() نام مستعاری از window_configure() است.
تاپلی از نام تمام پنجرههای تعبیهشده در ابزارک برمیگرداند.
پوششی سطح پایین حول فرمان ابزارک edit در Tk که سازوکار undo/redo و پرچم modified را کنترل میکند؛ args زیرفرمان edit و آرگومانهای آن است. متدهای edit_*() در زیر، پوششیهای نازکی حول آن هستند و معمولاً راحتتر هستند.
اگر arg حذف شود، وضعیت فعلی پرچم تغییر را بهصورت درست یا نادرست برمیگرداند؛ این پرچم هر زمان که متن درج یا حذف شود، بهطور خودکار تنظیم میشود. در غیر این صورت، پرچم را به مقدار بولی arg تنظیم میکند.
آخرین عملیات ویرایش را واگرد میکند؛ یعنی همهی درجها و حذفهایی را که از جداکنندهی پیشین در پشتهی واگرد ثبتشدهاند واگرد میکند و آن را به پشتهی بازانجام منتقل میکند. اگر پشتهی واگرد خالی باشد، TclError را پرتاب میکند. اگر گزینهی undo مقدار true نداشته باشد، هیچ اثری ندارد. از Tk 9.0، یک تاپل از اندیسها برمیگرداند که مرزهای بازههای متنی را که تغییر کردهاند مشخص میکنند.
آخرین عمل ویرایشی واگردشده را دوباره اعمال میکند، مشروط بر اینکه از آن زمان ویرایش دیگری انجام نشده باشد، و آن را به پشتهی واگرد بازمیگرداند. اگر پشتهی بازاجرا خالی باشد، TclError را پرتاب میکند. هیچ تأثیری ندارد، مگر اینکه گزینهی undo درست باشد. از Tk 9.0، یک تاپل از اندیسها برمیگرداند که محدودههای متن تغییرکرده را مشخص میکنند.
پشتههای واگرد و بازگرد را پاک کنید.
یک جداکننده را روی پشتهی واگرد (undo) قرار میدهد و مرزی میان اقدامهای ویرایشی برای واگرد و بازانجام (redo) مشخص میکند. این کار هیچ تأثیری ندارد، مگر اینکه گزینهی undo درست باشد. هنگامی که گزینهی autoseparators درست باشد، جداکنندهها بهصورت خودکار درج میشوند.
به دنبال pattern از index شروع کنید و اندیس اولین نویسه از اولین تطابق را برگرداند، یا اگر تطابقی وجود نداشته باشد یک رشتهی خالی برگردانید. جستجو در صورت مشخص شدن در stopindex متوقف میشود؛ در غیر این صورت تا زمانی که به موقعیت شروع برسیم، دور انتهای متن میچرخد. پرچمهای کلیدواژهی بولی زیر جستجو را کنترل میکنند: forwards یا backwards جهت را انتخاب میکنند (جلو پیشفرض است)؛ exact (پیشفرض) یا regexp تطابق لفظی یا عبارت باقاعده را انتخاب میکنند؛ nocase تطابق را نسبت به بزرگ و کوچک بودن حروف بیتفاوت میکند؛ elide باعث میشود متن پنهان نیز جستجو شود؛ nolinestop (فقط عبارت باقاعده) به . و [^ اجازه میدهد خطوط جدید را مطابقت دهند؛ و strictlimits ایجاب میکند که کل تطابق در محدوده index و stopindex قرار داشته باشد. اگر count یک Variable باشد، تعداد موقعیتهای اندیس در تطابق در آن ذخیره میشود.
تغییر یافته در نسخهی 3.15: پارامترهای nolinestop و strictlimits اضافه شدند.
مانند search()، اما هر تطابق را در محدودهی جستجو یافته و تاپلی از اندیسهای شروع تمام تطابقها را برمیگرداند (اگر هیچکدام وجود نداشته باشند، خالی است). بهطور پیشفرض، تطابقهای همپوشان گزارش نمیشوند؛ ارسال یک overlap مقدار صحیح، هر تطابق را که بهطور کامل در دیگری قرار نگرفته باشد برمیگرداند. اگر count یک Variable باشد، فهرستی با یک عنصر به ازای هر تطابق دریافت میکند.
اضافه شده در نسخهی 3.15.
x، y و نمای فعلی را برای استفاده در فراخوانیهای بعدی scan_dragto() ثبت کنید. این کار معمولاً به فشار دکمه ماوس در ابزارک متصل میشود.
ابزارک را به اندازهی ۱۰ برابر اختلاف بین x، y و مختصات ارسالشده به آخرین فراخوانی scan_mark() پیمایش میکند. این عمل معمولاً به رویدادهای حرکت ماوس متصل میشود و اثر کشیدهشدن متن با سرعت بالا در پنجره را ایجاد میکند.
اگر boolean حذف شده باشد، برمیگرداند که آیا بررسیهای سازگاری درونی ساختار دادهای B-tree فعال هستند یا خیر. در غیر این صورت، آنها را فعال یا غیرفعال میکند. این تنظیم میان تمام ابزارکهای متنی مشترک است و ممکن است ابزارکهایی را که مقادیر زیادی متن دارند بهطور محسوسی کند کند.
محتویات ابزارک را از index1 تا index2، بدون اینکه index2 را شامل شود، برمیگرداند (یا اگر index2 حذف شده باشد، فقط بخش مربوط به index1 را برمیگرداند)، از جمله متن و اطلاعاتی دربارهی نشانهها، برچسبها، تصاویر و پنجرهها. نتیجه فهرستی از سهتاییهای (key, value, index) است، که در آن key یکی از 'text'، 'mark'، 'tagon'، 'tagoff'، 'image' یا 'window' است. بهطور پیشفرض همهی انواع گزارش میشوند؛ ارسال هر یک از آرگومانهای کلیدواژهای all، text، mark، tag، image یا window بهعنوان true، خروجی را به انواع انتخابشده محدود میکند. اگر command داده شود، یک بار بهازای هر سهتایی با سه مقدار بهعنوان آرگومان فراخوانی میشود و چیزی برگردانده نمیشود.
یک ابزارک متنی همتا با نام مسیر newPathName ایجاد کنید که دادههای زیربنایی این ابزارک (متن، نشانهها، برچسبها، تصاویر و پشتهی واگرد) را به اشتراک میگذارد. تغییراتی که از طریق هر همتا اعمال شوند، در همهی آنها منعکس میشوند. بهطور پیشفرض، همتا همان سطرهایی را پوشش میدهد که این ابزارک پوشش میدهد؛ میتوان گزینههای استاندارد متنی، از جمله startline و endline را برای تغییر این رفتار ارائه کرد.
اضافه شده در نسخهی 3.3.
یک تاپل از نامهای مسیر همتاهای این ابزارک را برمیگرداند، بدون اینکه خود ابزارک را شامل شود.
اضافه شده در نسخهی 3.3.
کلاس پایه برای دربرگیرندههای متغیر 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 تعلق داشته باشند.
مقدار فعلی متغیر را برمیگرداند. در کلاس پایه، مقدار بهصورت یک رشته برگردانده میشود؛ زیرکلاسهای نوعدار آن را به نوع مناسب پایتون تبدیل میکنند.
متغیر را روی value تنظیم کنید. initialize() نام مستعار set() است.
اضافه شده در نسخهی 3.3: املای initialize.
callback را ثبت کنید تا هرگاه متغیر مطابق mode مورد دسترسی قرار گرفت، فراخوانی شود. mode یکی از رشتههای 'array'، 'read'، 'write' یا 'unset' است، یا فهرستی یا تاپلی از چنین رشتههایی.
هنگامی که فعال شود، callback با سه آرگومان فراخوانی میشود: نام متغیر Tcl، یک اندیس (یا یک رشته خالی اگر متغیر عنصری از یک آرایه نباشد)، و mode که فراخوانی را فعال کرده است.
نام داخلی کالبک ثبتشده را برمیگرداند، که میتوان آن را به trace_remove() ارسال کرد.
اضافه شده در نسخهی 3.6.
یک کالبک ردگیری را از متغیر حذف کنید. mode باید با mode ارسالشده به trace_add() مطابقت داشته باشد، و cbname نام کالبکی است که توسط trace_add() بازگردانده شده است.
اضافه شده در نسخهی 3.6.
فهرستی از جفتهای (modes, cbname) برمیگرداند که توصیفکنندهی همهی ردگیریهایی هستند که در حال حاضر روی متغیر تنظیمشدهاند؛ در اینجا modes تاپلی از رشتههای حالت و cbname نام کالبک داخلی است.
اضافه شده در نسخهی 3.6.
callback را ثبت کنید تا هنگامی که متغیر مطابق mode مورد دسترسی قرار میگیرد، فراخوانی شود. mode یکی از رشتههای 'r'، 'w' یا 'u' برای خواندن، نوشتن یا حذف است. نام داخلی کالبک ثبتشده را برمیگرداند. trace() یک نام مستعار برای trace_variable() است.
منسوخ شده از نسخهی 3.6: بهجای آن از trace_add() استفاده کنید. این متد یک ویژگی Tcl را پوشش میدهد که در Tcl 9.0 حذف شده است.
کالبک ردگیری به نام cbname را که برای mode با trace_variable() ثبت شده است، حذف کنید.
منسوخ شده از نسخهی 3.6: بهجای آن از trace_remove() استفاده کنید. این متد پوششی برای یک قابلیت Tcl است که در Tcl 9.0 حذف شده است.
فهرستی از جفتهای (mode, cbname) را برای تمام ردگیریهای تنظیمشده روی متغیر با trace_variable() برمیگرداند.
منسوخ شده از نسخهی 3.6: بهجای آن از trace_info() استفاده کنید. این متد پوششی برای یک قابلیت Tcl است که در Tcl 9.0 حذف شده است.
زیرکلاسی از Variable که یک رشته را نگه میدارد. مقدار پیشفرض '' است.
یک زیرکلاس از Variable که یک عدد صحیح را نگه میدارد. مقدار پیشفرض 0 است.
زیرکلاسی از Variable که یک عدد اعشاری را نگه میدارد. مقدار پیشفرض 0.0 است.
نکته
یک مقدار ممیز شناور همیشه با یک نقطه (.) بهعنوان جداکننده اعشاری تجزیه میشود، اما Spinbox، Scale و ttk.Spinbox آن را مطابق locale LC_NUMERIC قالببندی میکنند. در localeای که از کاما استفاده میکند، آنها مقداری تولید میکنند که get() نمیتواند آن را بخواند و TclError پرتاب میشود. برای اجتناب از این مورد، LC_NUMERIC را روی localeای تنظیم کنید که از نقطه استفاده میکند (مانند 'C').
یک زیرکلاس از Variable که یک مقدار بولی نگه میدارد. مقدار پیشفرض False است.
مقدار متغیر را بهعنوان bool برمیگرداند. اگر مقدار نتواند بهعنوان یک بولی تفسیر شود، یک ValueError پرتاب میکند.
متغیر را روی value تنظیم میکند و آن را به بولی تبدیل میکند. initialize() نام مستعاری از set() است.
اضافه شده در نسخهی 3.3: املای initialize.
کلاس پایه برای تصاویر Tk. imgtype نوع تصویر Tk است، یکی از 'photo' یا 'bitmap'. تصویر یک شیء دارای نام است که ابزارکها میتوانند آن را از طریق گزینهی image خود نمایش دهند؛ حذف همهی ارجاعها به شیء Image، تصویر زیربنایی Tk را حذف میکند. معمولاً بهجای ایجاد مستقیم یک Image، یک PhotoImage یا BitmapImage ایجاد میکنید.
گزینههای پیکربندی تصویر با cnf و kw مشخص میشوند و بعداً میتوان آنها را با پروتکل نگاشت (با استفاده از image[key]) یا با متد configure() پرسوجو و تغییر داد.
یک یا چند گزینهی پیکربندی تصویر را تغییر دهید. گزینههای معتبر به نوع تصویر بستگی دارند؛ به PhotoImage و BitmapImage مراجعه کنید. config() نام مستعاری از configure() است.
ارتفاع تصویر را بر حسب پیکسل برمیگرداند.
عرض تصویر را بر حسب پیکسل برمیگرداند.
نوع تصویر را برمیگرداند، یعنی مقدار imgtype که با آن ایجاد شده است (برای مثال 'photo' یا 'bitmap').
یک تصویر تمامرنگی (نوع تصویر photo در Tk)، که بهصورت داخلی با درجهای متغیر از شفافیت برای هر پیکسل ذخیره میشود. این تصویر میتواند پروندههای GIF، PPM/PGM و (در Tk 8.6 و بعد از آن) PNG را بخواند و بنویسد، پروندههای SVG را (در Tk 9.0 و بعد از آن) بخواند، و در ابزارکها ترسیم شود. از Image ارث میبرد.
گزینههای پیکربندی شامل data (محتوای تصویر بهصورت یک رشته)، file (نام پروندهای که محتوا از آن خوانده میشود)، format (نام هندلر قالب پرونده)، width و height (اندازهی تصویر، که هنگام ساخت آن بهصورت تکهتکه استفاده میشود)، gamma و palette هستند.
تصویر را خالی کنید؛ یعنی کل تصویر را طوری تنظیم کنید که هیچ دادهای نداشته باشد، بهگونهای که بهصورت شفاف نمایش داده شود و پسزمینهی هر پنجرهای که در آن نمایش داده میشود، از پشت آن نمایان باشد.
مقدار فعلی گزینهی پیکربندی option را برمیگرداند.
یک 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 افزوده شدند.
یک ناحیه را از 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.
دادههای تصویر را برمیگرداند.
format نام هندلر قالب پرونده تصویری مورد استفاده را مشخص میکند. اگر داده نشود، داده بهصورت یک تاپل (یک عنصر به ازای هر ردیف) از رشتههایی برگردانده میشود که حاوی رنگهای جداشده با فاصله (یک عنصر به ازای هر پیکسل/ستون) در قالب #RRGGBB هستند.
from_coords یک ناحیهی مستطیلی از تصویر را که بازگردانده خواهد شد مشخص میکند. این مقدار باید یک تاپل یا فهرستی شامل ۱ تا ۴ عدد صحیح بهصورت (x1, y1, x2, y2) باشد. اگر فقط x1 و y1 تعیین شده باشند، ناحیه از (x1, y1) تا گوشهی پایین-راست تصویر گسترش مییابد. اگر هر چهار مختصات داده شوند، آنها گوشههای مورب مقابل ناحیه را مشخص میکنند؛ (x1, y1) جزو ناحیه است و (x2, y2) جزو ناحیه نیست. اگر from_coords داده نشود، کل تصویر بازگردانده میشود.
اگر background مشخص شده باشد، داده حاوی هیچگونه اطلاعات شفافیت نیست؛ در تمام پیکسلهای شفاف، رنگ با رنگ مشخصشده جایگزین میشود.
اگر grayscale درست باشد، دادهها حاوی اطلاعات رنگ نیستند؛ تمام دادههای پیکسل به مقیاس خاکستری تبدیل میشوند.
اضافه شده در نسخهی 3.13.
رنگ پیکسل در مختصات (x, y) را بهصورت یک تاپل (r, g, b) از سه عدد صحیح بین ۰ و ۲۵۵ برمیگرداند، که بهترتیب نشاندهندهی کامپوننتهای قرمز، سبز و آبی هستند.
پیکسلهای تصویر را به رنگهای دادهشده در data تنظیم کنید، که باید یک رشته یا یک دنباله تودرتو از ردیفهای افقی رنگهای پیکسل باشد (برای مثال "{red green} {blue yellow}").
to مختصات ناحیهای از تصویر را مشخص میکند که دادهها به آن کپی میشوند. این باید یک تاپل یا فهرستی از ۲ یا ۴ عدد صحیح بهصورت (x1, y1) یا (x1, y1, x2, y2) باشد که گوشهی بالا-چپ و بهاختیار گوشهی پایین-راست ناحیه را مشخص میکند. موقعیت پیشفرض (0, 0) است.
دادههای تصویر را از پروندهای با نام filename در تصویر بخوانید.
format قالب دادههای تصویر در پرونده را مشخص میکند.
from_coords زیرناحیهای مستطیلی از دادههای پرونده تصویر را مشخص میکند که باید به تصویر مقصد کپی شود. این باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح بهصورت (x1, y1, x2, y2) باشد. اگر فقط x1 و y1 مشخص شوند، ناحیه از (x1, y1) تا گوشه پایین سمت راست تصویر موجود در پرونده ادامه دارد. اگر هر ۴ مختصات داده شوند، آنها گوشههای مقابل مورب ناحیه را مشخص میکنند. اگر from_coords داده نشود، کل تصویر موجود در پرونده خوانده میشود.
to مختصات گوشهی بالا سمت چپِ ناحیهای از تصویر را مشخص میکند که دادهها در آن خوانده میشوند. مقدار پیشفرض (0, 0) است.
اگر shrink برابر با true باشد، اندازه تصویر در صورت لزوم کاهش مییابد، بهطوری که ناحیهای که دادههای پرونده در آن خوانده میشوند، در گوشهی پایین سمت راست تصویر قرار گیرد.
اضافه شده در نسخهی 3.13.
یک PhotoImage جدید بر پایه این تصویر برمیگرداند، اما فقط از هر x*مین پیکسل در راستای X و هر *y*مین پیکسل در راستای Y استفاده میکند. اگر *y داده نشود، مقدار پیشفرض آن همان مقدار x خواهد بود.
from_coords زیرناحیهی مستطیلی از تصویر مبدأ را برای کپیشدن مشخص میکند، همانطور که در متد copy() آمده است.
تغییر یافته در نسخهی 3.13: پارامتر from_coords اضافه شد.
اگر پیکسل در مختصات (x، y) کاملاً شفاف باشد، True و در غیر این صورت False را برمیگرداند.
اضافه شده در نسخهی 3.8.
پیکسل در مختصات (x، y) را اگر boolean درست باشد، کاملاً شفاف و در غیر این صورت کاملاً کدر کنید.
اضافه شده در نسخهی 3.8.
دادههای تصویر را از تصویر به پروندهای با نام filename مینویسد.
format نام هندلری قالب پرونده تصویری مورد استفاده را مشخص میکند. اگر داده نشود، قالب از پسوند پرونده حدس زده میشود.
from_coords ناحیهی مستطیلی از تصویر را برای نوشته شدن مشخص میکند. این مقدار باید یک تاپل یا فهرستی از ۱ تا ۴ عدد صحیح (x1, y1, x2, y2) باشد. اگر فقط x1 و y1 مشخص شده باشند، ناحیه از (x1, y1) تا گوشهی پایین سمت راست تصویر گسترش مییابد. اگر هر چهار مختصات داده شوند، آنها دو گوشهی مقابل بهصورت موربِ ناحیه را مشخص میکنند. اگر from_coords داده نشود، کل تصویر نوشته میشود.
اگر background مشخص شده باشد، داده حاوی هیچگونه اطلاعات شفافیت نیست؛ در تمام پیکسلهای شفاف، رنگ با رنگ مشخصشده جایگزین میشود.
اگر grayscale درست باشد، دادهها حاوی اطلاعات رنگ نیستند؛ تمام دادههای پیکسل به مقیاس خاکستری تبدیل میشوند.
تغییر یافته در نسخهی 3.13: پارامترهای background و grayscale افزوده شدند.
یک PhotoImage جدید برمیگرداند که در آن این تصویر با ضریب x در جهت X و ضریب y در جهت Y بزرگنمایی شده است. اگر y داده نشود، بهطور پیشفرض همان مقدار x را خواهد داشت.
from_coords زیرناحیهی مستطیلی از تصویر مبدأ را برای کپیشدن مشخص میکند، همانطور که در متد copy() آمده است.
تغییر یافته در نسخهی 3.13: پارامتر from_coords اضافه شد.
یک تصویر دورنگ (نوع تصویر bitmap در Tk) که از یک بیتمپ X11 ایجاد شده است. هر پیکسل رنگ پیشزمینه، رنگ پسزمینه، یا هیچچیز را نمایش میدهد (که اثری شفاف ایجاد میکند). از Image ارث میبرد.
گزینههای پیکربندی عبارتاند از data یا file (بیتمپ منبع، که بهصورت یک رشته در قالب بیتمپ X11 یا بهصورت نام یک پرونده در همان قالب داده میشود)، maskdata یا maskfile (بیتمپ نقاب، به همان شکلها)، و foreground و background (دو رنگ). برای پیکسلهایی که نقاب آنها صفر است، تصویر هیچ چیزی را نمایش نمیدهد؛ برای سایر پیکسلها، در نقاطی که منبع یک است رنگ پیشزمینه و در نقاطی که منبع صفر است رنگ پسزمینه را نمایش میدهد. اگر background به یک رشته خالی تنظیم شود، پیکسلهای پسزمینه شفاف خواهند بود.
BitmapImage هیچ متدی از خود ندارد، بهجز متدهایی که از Image به ارث برده است.
ظرفی برای ویژگیهای رویدادی که به کالبک متصلشده با Misc.bind() ارسال میشود. یک نمونه از Event دارای ویژگیهای زیر است که هر کدام با یکی از فیلدهای رویداد Tk زیربنایی متناظر است؛ بسته به نوع رویداد، ممکن است برخی از ویژگیها روی رشته '??' تنظیم شوند تا نشان داده شود که معنادار نیستند. اتصالها و رویدادها را ببینید.
شماره سریال رویداد.
دکمهی ماوسی که فشرده یا رها شده است (برای رویدادهای دکمه).
اینکه آیا پنجره فوکوس را دارد یا خیر (برای رویدادهای Enter و Leave).
کد کلید (keycode) برای کلیدی که فشرده یا رها شده است.
وضعیت رویداد، بهصورت یک عدد (برای بیشتر رویدادها) یا یک رشته (برای رویدادهای Visibility).
برچسب زمانی رویداد، بر حسب میلیثانیه.
نویسهی تایپشده، بهصورت یک رشته (برای رویدادهای کلید).
True اگر رویداد از سوی برنامهی دیگری ارسال شده باشد.
نام نمادین کلیدی که فشرده یا رها شده است.
ابزارکی که رویداد بر آن رخ داده است.
میزان چرخش چرخ ماوس (برای رویدادهای MouseWheel).
رشتهی دادهی یک رویداد مجازی، همانطور که به گزینهی data در Misc.event_generate() ارسال میشود. برای رویدادهای غیرمجازی برابر با '??' است.
اضافه شده در نسخهی 3.15.
رشتهی جزئیات ثابت برای رویدادهای Enter، Leave، FocusIn، FocusOut و ConfigureRequest (مستندات Tcl/Tk را ببینید). این مقدار برای سایر رویدادها '??' است.
اضافه شده در نسخهی 3.15.
یک enum.StrEnum که انواع رویداد Tk را برمیشمارد و بهعنوان مقدار Event.type استفاده میشود. اعضای آن، از میان سایر موارد، شامل KeyPress، KeyRelease، ButtonPress، ButtonRelease، Motion، Enter، Leave، FocusIn، FocusOut، Configure، Map، Unmap، Expose، Destroy و MouseWheel هستند.
اضافه شده در نسخهی 3.6.
کمکی داخلی که یک کالبک پایتون را میپوشاند تا بتوان آن را از Tcl فراخوانی کرد. func تابع پایتون است، subst یک تابع اختیاری است که آرگومانهای Tcl را پیشپردازش میکند، و widget ابزارکی است که برای گزارش خطا استفاده میشود. نمونهها بهصورت خودکار توسط Misc.register() ایجاد میشوند؛ این کلاس معمولاً بهصورت مستقیم استفاده نمیشود.
تابع Tcl() یک تابع کارخانهای است که شیءای بسیار شبیه به شیء ایجادشده توسط کلاس Tk را ایجاد میکند، با این تفاوت که زیرسیستم Tk را راهاندازی نمیکند. این تابع بیشتر زمانی مفید است که مفسر Tcl را در محیطی هدایت میکنید که نمیخواهید پنجرههای Toplevel اضافی ایجاد کنید، یا نمیتوانید این کار را انجام دهید (مانند سیستمهای Unix/Linux بدون سرور X). برای شیء ایجادشده توسط شیء Tcl()، میتوان با فراخوانی متد loadtk() آن، یک پنجرهی Toplevel ایجاد کرد (و زیرسیستم Tk را راهاندازی کرد).
از ایجاد یک پنجرهی ریشهی پیشفرض ضمنی جلوگیری میکند. پس از آن tkinter دیگر بهطور خودکار یک ریشهی پیشفرض مشترک ایجاد نمیکند، و عملیاتی که به آن وابستهاند --- مانند ساخت یک ابزارک بدون master صریح --- استثنای RuntimeError را پرتاب میکنند. در برنامههای بزرگتر، این را در مراحل اولیه فراخوانی کنید تا پنجرهی ریشه بهصورت صریح تعیین شود.
حلقه اصلی رویداد Tk را روی پنجره ریشه پیشفرض اجرا کنید تا همه پنجرهها نابود شوند. معادل فراخوانی Misc.mainloop() روی ریشه پیشفرض است.
رشتهی بولی Tcl یعنی s (یکی از '1'، 'true'، 'yes'، 'on' و موارد مشابه، یا معادلهای نادرست آنها) را به bool پایتون تبدیل کنید. برای یک مقدار نامعتبر، استثنای ValueError را بالا بیاورید.
نامهای تمام تصاویر موجود در مفسر ریشهی پیشفرض را برمیگرداند.
انواع تصویر در دسترس (مانند '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) استفاده کنید.
تابع کالبک هندلر پرونده func را ثبت میکند. آرگومان file میتواند یا یک شیء دارای متد fileno() (مانند یک شیء پرونده یا سوکت) باشد، یا یک توصیفگر پرونده از نوع عدد صحیح. آرگومان mask ترکیبی از هر یک از سه ثابت زیر با عملگر OR است. کالبک به صورت زیر فراخوانی میشود:
callback(file, mask)
یک هندلر پرونده (file handler) را از ثبت خارج میکند.
ثابتهای نمادین زیر در هر دو فضای نام tkinter و tkinter.constants در دسترس هستند.
جهتهای قطبنما ('n'، 's'، 'e'، 'w' و قطرها و لبهها) بههمراه CENTER ('center')، که بهعنوان مقدارهایی برای گزینههای anchor و sticky و همچنین توسط متدهایی مانند Misc.grid_anchor() استفاده میشوند.
طرفهای گزینهی side برای بستهبند (packer) (به Pack.pack_configure() مراجعه کنید).
مقادیر گزینهی fill در بستهبند (packer): 'x'، 'y'، 'both' یا 'none'.
مقادیر گزینهی relief، که حاشیهی سهبعدی یک ابزارک را کنترل میکند.
مقادیر برای گزینهی orient در ابزارکهایی مانند Scale، Scrollbar و PanedWindow.
مقادیر گزینهی wrap در ابزارک Text، برای انتخاب پیچیدن خط بر روی مرزهای نویسه یا واژه.
مقدار همترازی متن 'baseline'.
مقادیر برای گزینهی bordermode در جایدهنده (به Place.place_configure() مراجعه کنید).
اندیسهای نمادین مورد استفاده در ابزارکهای Text، Entry، Listbox و Canvas، مانند 'insert' (مکاننمای درج)، 'current'، 'end'، 'anchor' و کرانههای انتخاب ('sel.first' و 'sel.last').
برچسب ویژه 'all'، که با هر آیتم از یک Canvas یا هر نویسه از یک Text مطابقت دارد (برای مثال canvas.delete(ALL)).
مقادیر گزینهی state برای ابزارکها و آیتمهای مختلف.
انواع آیتمهای منو، که بهعنوان آرگومان itemType در Menu.add() و Menu.insert() استفاده میشوند.
مقدارهای گزینهی selectmode برای ابزارک Listbox.
مقادیر گزینههای capstyle ('butt'، 'projecting'، 'round') و joinstyle ('round'، 'bevel'، 'miter') برای آیتمهای خط در Canvas.
مقادیر گزینهی arrow برای آیتمهای خط Canvas، که نشان میدهد کدام انتهاها سرپیکان دارند.
اولین آرگومانی که یک Scrollbar به متد XView.xview() یا YView.yview() مربوط به ابزارک پیمایششده میفرستد.
مقادیر آرگومان what برای XView.xview_scroll() و YView.yview_scroll().