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.ttk --- ابزارکهای دارای پوستهی Tk
|
گزینه |
توضیحات |
|---|---|
کلاس |
کلاس پنجره را مشخص میکند. این کلاس هنگام پرسوجو از پایگاه دادهی گزینهها (option database) برای سایر گزینههای پنجره، برای تعیین برچسبهای اتصال (bindtags) پیشفرض پنجره و انتخاب چیدمان و سبک پیشفرض ابزارک استفاده میشود. این گزینه فقطخواندنی است و تنها در زمان ایجاد پنجره قابل تعیین است. |
مکاننما |
مکاننما ماوس مورد استفاده برای ابزارک را مشخص میکند. نوع گزینهی cursor را در انواع دادهی گزینههای Tk ببینید. اگر روی رشتهی خالی (پیشفرض) تنظیم شود، مکاننما از ابزارک والد به ارث میرسد. |
takefocus |
تعیین میکند که آیا پنجره در حین پیمایش با صفحهکلید فوکوس را میپذیرد یا خیر. ۰، ۱ یا یک رشتهی خالی برگردانده میشود. اگر ۰ برگردانده شود، به این معناست که پنجره باید در حین پیمایش با صفحهکلید بهطور کامل نادیده گرفته شود. اگر ۱ برگردانده شود، به این معناست که پنجره باید تا زمانی که قابل مشاهده است، فوکوس ورودی را دریافت کند. و رشتهی خالی به این معناست که اسکریپتهای پیمایش تصمیم میگیرند که آیا فوکوس به پنجره داده شود یا خیر. |
سبک |
میتواند برای تعیین یک سبک سفارشی ابزارک استفاده شود. |
ابزارکهایی که با نوار پیمایش کنترل میشوند، از گزینههای زیر پشتیبانی میکنند.
گزینه |
توضیحات |
|---|---|
xscrollcommand |
برای ارتباط با نوارهای پیمایش افقی استفاده میشود. هنگامی که نمای درون پنجرهی ابزارک تغییر میکند، ابزارک کالبک xscrollcommand را فراخوانی میکند. معمولاً این گزینه شامل متد |
yscrollcommand |
برای برقراری ارتباط با نوارهای پیمایش عمودی استفاده میشود. برای اطلاعات بیشتر، به بالا مراجعه کنید. |
گزینههای زیر توسط برچسبها، دکمهها و سایر ابزارکهای دکمهمانند پشتیبانی میشوند.
گزینه |
توضیحات |
|---|---|
متن |
یک رشته متنی را برای نمایش درون ابزارک مشخص میکند. |
textvariable |
نامی را مشخص میکند که مقدار آن بهجای منبع گزینهی متنی استفاده خواهد شد. |
زیرخط |
در صورت تنظیم، اندیس (مبنای ۰) نویسهای را که باید در رشتهی متن زیرخطدار شود مشخص میکند. نویسهی زیرخطدار برای فعالسازی یادآور (mnemonic activation) استفاده میشود. |
تصویر |
یک تصویر را برای نمایش مشخص میکند. این فهرستی از ۱ یا چند عنصر است. اولین عنصر، نام تصویر پیشفرض است. بقیهی فهرست، دنبالهای از جفتهای statespec/value است که توسط |
مرکب |
نحوهی نمایش تصویر نسبت به متن را در صورتی که هر دو گزینهی متن و تصویر موجود باشند، مشخص میکند. مقادیر معتبر عبارتند از:
|
عرض |
اگر بزرگتر از صفر باشد، مشخص میکند که چه مقدار فضا، بر حسب عرض نویسه، برای برچسب متنی اختصاص یابد؛ اگر کوچکتر از صفر باشد، حداقل عرض را مشخص میکند. اگر صفر باشد یا مشخص نشده باشد، عرض طبیعی برچسب متنی استفاده میشود. |
گزینه |
توضیحات |
|---|---|
وضعیت |
میتوان آن را روی "normal" یا "disabled" تنظیم کرد تا بیت وضعیت "disabled" را کنترل کند. این یک گزینهی فقطنوشتنی است: تنظیم آن وضعیت ابزارک را تغییر میدهد، اما متد |
وضعیت ابزارک، یک بیتمپ از پرچمهای وضعیت مستقل است.
پرچم |
توضیحات |
|---|---|
فعال |
مکاننما ماوس روی ابزارک قرار دارد و فشردن دکمهای از ماوس باعث وقوع عملی میشود |
غیرفعال |
ابزارک تحت کنترل برنامه غیرفعال است |
تمرکز |
ابزارک دارای فوکوس صفحهکلید است |
فشردهشده |
ابزارک در حال فشردهشدن است |
انتخابشده |
"On"، "true" یا "current" برای مواردی مانند Checkbuttons و radiobuttons |
پسزمینه |
ویندوز و مک مفهومی به نام پنجره «فعال» یا پیشزمینه دارند. وضعیت پسزمینه برای ابزارکهای موجود در یک پنجره پسزمینه تنظیم میشود و برای ابزارکهای موجود در پنجره پیشزمینه پاک میشود |
فقط خواندنی |
ابزارک نباید به کاربر اجازهی تغییر بدهد |
جایگزین |
یک قالب نمایش جایگزین مختص ابزارک |
نامعتبر |
مقدار ابزارک نامعتبر است |
یک مشخصه وضعیت، دنبالهای از نامهای وضعیت است که بهصورت اختیاری با یک علامت تعجب پیشوند داده میشود و نشان میدهد بیت خاموش است.
علاوه بر متدهای توصیفشده در زیر، ttk.Widget از متدهای tkinter.Widget.cget و tkinter.Widget.configure پشتیبانی میکند.
نام المان در موقعیت x y را برمیگرداند، یا اگر نقطه درون هیچ المانی قرار نداشته باشد، رشته خالی را برمیگرداند.
x و y مختصات پیکسلی نسبت به ابزارک هستند.
وضعیت ابزارک را آزمایش میکند. اگر کالبکی مشخص نشده باشد، در صورتی که وضعیت ابزارک با statespec مطابقت داشته باشد True و در غیر این صورت False برمیگرداند. اگر کالبکی مشخص شده باشد، در صورتی که وضعیت ابزارک با statespec مطابقت داشته باشد، با آرگومانها فراخوانی میشود.
تغییر یا پرسوجوی وضعیت ابزارک. اگر statespec تعیینشده باشد، وضعیت ابزارک را مطابق آن تنظیم میکند و یک statespec جدید برمیگرداند که نشان میدهد کدام پرچمها تغییر کردهاند. اگر statespec تعییننشده باشد، پرچمهای وضعیت را که در حال حاضر فعال هستند برمیگرداند.
نباید با Wm.state اشتباه گرفته شود.
statespec معمولاً یک فهرست یا تاپل است.
ابزارک ttk.Combobox یک فیلد متنی را با فهرستی بازشونده از مقادیر ترکیب میکند. این ابزارک زیرکلاسی از Entry است.
علاوه بر متدهایی که از Widget به ارث رسیدهاند: cget()، configure()، identify()، instate() و state()، و متدهای زیر که از Entry به ارث رسیدهاند: bbox()، delete()، icursor()، index()، insert()، selection*، xview*، متدهای دیگری نیز دارد که در ttk.Combobox توضیح داده شدهاند.
این ابزارک گزینههای خاص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
exportselection |
مقدار بولی. اگر تنظیم شود، انتخاب ابزارک به انتخاب X پیوند میخورد (که برای مثال میتوان با فراخوانی Misc.selection_get آن را برگرداند). |
همتراز |
مشخص میکند که متن چگونه درون ابزارک تراز میشود. یکی از "left"، "center" یا "right". |
ارتفاع |
ارتفاع جعبهفهرست بازشو را بر حسب ردیف مشخص میکند. |
postcommand |
اسکریپتی (که ممکن است با Misc.register ثبتشده باشد) که بلافاصله پیش از نمایش مقدارها فراخوانی میشود. این اسکریپت میتواند مشخص کند کدام مقدارها نمایش داده شوند. |
وضعیت |
یکی از "normal"، "readonly" یا "disabled". در حالت "readonly"، نمیتوان مقدار را مستقیماً ویرایش کرد و کاربر فقط میتواند یکی از مقدارها را از فهرست بازشو انتخاب کند. در حالت "normal"، فیلد متنی مستقیماً قابل ویرایش است. در حالت "disabled"، هیچ تعاملی ممکن نیست. |
textvariable |
نامی را مشخص میکند که مقدار آن به مقدار ابزارک پیوند داده شده است. هر زمان که مقدار مرتبط با آن نام تغییر کند، مقدار ابزارک بهروزرسانی میشود و برعکس. |
مقادیر |
فهرست مقادیر را برای نمایش در جعبهفهرست بازشو مشخص میکند. |
عرض |
مقدار عدد صحیحی را مشخص میکند که عرض دلخواه پنجره ورودی را بر حسب نویسههای با اندازه متوسط قلم ابزارک نشان میدهد. |
نکته
Tk 9.1 گزینهی locale را افزود، که locale مورد استفاده برای تعیین مرزهای واژهای و نویسهای درون متن را انتخاب میکند (بهطور پیشفرض "C").
ابزارک جعبه انتخاب هنگامی که کاربر عنصری را از فهرست مقادیر انتخاب میکند، یک رویداد مجازی <<ComboboxSelected>> را تولید میکند.
اگر newindex مشخص شده باشد، مقدار جعبه انتخاب را روی عنصر در موقعیت newindex تنظیم میکند. در غیر این صورت، اندیس مقدار فعلی یا -۱ را در صورتی که مقدار فعلی در فهرست مقادیر نباشد، برمیگرداند.
مقدار فعلی جعبه انتخاب را برمیگرداند.
مقدار جعبه انتخاب را روی value تنظیم میکند.
ابزارک ttk.Spinbox یک ttk.Entry است که با پیکانهای افزایش و کاهش تقویتشده است. میتوان از آن برای اعداد یا فهرستهایی از مقادیر رشتهای استفاده کرد. این ابزارک یک کلاس فرعی از Entry است. علاوه بر متدهایی که از Widget به ارث رسیدهاند: cget()، configure()، identify()، instate() و state()، و متدهای زیر که از Entry به ارث رسیدهاند: bbox()، delete()، icursor()، index()، insert()، xview*، این ابزارک متدهای دیگری نیز دارد که در ttk.Spinbox توضیح داده شدهاند.
این ابزارک گزینههای خاص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
از |
مقدار شناور. اگر تنظیم شود، این حداقل مقداری است که دکمه کاهش، مقدار را تا آن کاهش میدهد. هنگام استفاده بهعنوان آرگومان، باید بهصورت |
به |
مقدار اعشاری. اگر تنظیم شده باشد، این حداکثر مقداری است که دکمه افزایش، مقدار را تا آن افزایش میدهد. |
افزایش |
مقدار شناور. میزانی را مشخص میکند که دکمههای افزایش/کاهش، مقدار را با آن تغییر میدهند. پیشفرض آن ۱.۰ است. |
مقادیر |
دنبالهای از مقادیر رشته یا اعشاری. در صورت تعیین شدن، دکمههای افزایش/کاهش به جای افزایش یا کاهش اعداد، بهصورت چرخهای بین آیتمهای این دنباله جابهجا میشوند. |
دربرگرفتن |
مقدار بولی. اگر |
قالب |
مقدار رشتهای. این مقدار قالب اعدادی را که با دکمههای افزایش/کاهش تنظیم میشوند مشخص میکند. این مقدار باید به شکل "%W.Pf" باشد، که در آن W عرض مقدار با پرکننده، P دقت، و '%' و 'f' نویسههای لفظی هستند. |
فرمان |
فراخوانیپذیر پایتون. هرگاه یکی از دکمههای افزایش یا کاهش فشرده شود، بدون آرگومان فراخوانی خواهد شد. |
ابزارک اسپینباکس هنگامی که کاربر <Up> را فشار میدهد، یک رویداد مجازی <<Increment>> و هنگامی که کاربر <Down> را فشار میدهد، یک رویداد مجازی <<Decrement>> تولید میکند.
در صورت استفاده از مقدار افزایش غیر عدد صحیح، مقادیر عددی و locale را ببینید.
اضافه شده در نسخهی 3.8.
مقدار فعلی اسپینباکس را برمیگرداند.
مقدار اسپینباکس را روی value تنظیم میکند.
ابزارک Ttk Notebook مجموعهای از پنجرهها را مدیریت میکند و در هر زمان فقط یکی را نمایش میدهد. هر پنجرهی فرزند با یک زبانه مرتبط است که کاربر میتواند آن را برای تغییر پنجرهی در حال نمایش انتخاب کند.
این ابزارک گزینههای خاص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
ارتفاع |
در صورت وجود و بزرگتر بودن از صفر، ارتفاع مطلوب ناحیهی بخش را تعیین میکند (بدون احتساب فاصلهگذاری داخلی یا زبانهها). در غیر این صورت، از بیشینهی ارتفاع همهی بخشها استفاده میشود. |
پرکننده (padding) |
مقدار فضای اضافی را که باید به اطراف بیرونی notebook اضافه شود، مشخص میکند. فاصلهگذاری (padding) فهرستی از حداکثر چهار مشخصهی طول برای چپ، بالا، راست و پایین است. اگر کمتر از چهار عنصر مشخص شود، پایین بهطور پیشفرض مقدار بالا، راست مقدار چپ، و بالا مقدار چپ را میگیرد. |
عرض |
اگر موجود و بزرگتر از صفر باشد، عرض مطلوب ناحیهی بخش (pane) را مشخص میکند (بدون احتساب فاصلهگذاری داخلی). در غیر این صورت، حداکثر عرض همهی بخشها استفاده میشود. |
برای تبها نیز گزینههای ویژهای وجود دارد:
گزینه |
توضیحات |
|---|---|
وضعیت |
یکی از "normal"، "disabled" یا "hidden". اگر "disabled" باشد، زبانه قابل انتخاب نیست. اگر "hidden" باشد، زبانه نمایش داده نمیشود. |
چسبان |
نحوهی قرارگیری پنجرهی فرزند درون ناحیهی بخش را مشخص میکند. مقدار آن رشتهای است که شامل صفر یا چند نویسه از میان "n"، "s"، "e" یا "w" است. هر حرف به یک ضلع (شمال، جنوب، شرق یا غرب) اشاره دارد که پنجرهی فرزند، مطابق مدیر چیدمان |
پرکننده (padding) |
مقدار فضای اضافی را که باید بین نوتبوک (notebook) و این بخش افزوده شود، مشخص میکند. سینتکس آن همانند گزینهی padding است که این ابزارک از آن استفاده میکند. |
متن |
متنی را برای نمایش در زبانه تعیین میکند. |
تصویر |
تصویری را برای نمایش در زبانه مشخص میکند. گزینهی image را که در |
مرکب |
نحوهی نمایش تصویر نسبت به متن را در صورتی که هر دو گزینهی متن و تصویر موجود باشند، مشخص میکند. برای مقادیر مجاز، Label Options را ببینید. |
زیرخط |
اندیس (مبنای ۰) نویسهای را که باید در رشتهی متن زیرخطدار شود، مشخص میکند. اگر |
tab_id موجود در چندین متدِ ttk.Notebook میتواند هر یک از شکلهای زیر را داشته باشد:
یک عدد صحیح بین ۰ و تعداد تبها
نام یک پنجرهی فرزند
یک مشخصهی جایگاهی به شکل «@x,y»، که زبانه را شناسایی میکند
رشتهی لفظی "current"، که زبانهی انتخابشدهی کنونی را مشخص میکند
رشتهی لفظی "end"، که تعداد زبانهها را برمیگرداند (فقط برای Notebook.index() معتبر است)
این ابزارک پس از انتخاب یک زبانهی جدید، رویداد مجازی <<NotebookTabChanged>> را تولید میکند.
یک زبانهی جدید به نوتبوک اضافه میکند.
اگر پنجره در حال حاضر توسط نوتبوک مدیریت شود اما پنهان باشد، به موقعیت پیشین خود بازگردانده میشود.
برای دیدن فهرست گزینههای موجود، Tab Options را ببینید.
زبانهی مشخصشده با tab_id را حذف میکند و پنجرهی مرتبط را از نگاشت و مدیریت خارج میکند.
این متد، forget() موروثیِ مدیر چیدمان را میپوشاند؛ برای حذف خود ابزارک از مدیر آن، از pack_forget()، grid_forget() یا place_forget() استفاده کنید.
زبانهی مشخصشده با tab_id را پنهان میکند.
زبانه نمایش داده نخواهد شد، اما پنجرهی مرتبط همچنان توسط نوتبوک مدیریت میشود و پیکربندی آن به خاطر سپرده میشود. زبانههای مخفی را میتوان با دستور add() بازیابی کرد.
نام عنصر تب را در موقعیت x، y برمیگرداند، یا اگر هیچ عنصری وجود نداشته باشد، رشتهی خالی را برمیگرداند.
اندیس عددی زبانهی مشخصشده با tab_id را برمیگرداند، یا اگر tab_id رشتهی "end" باشد، تعداد کل زبانهها را برمیگرداند.
یک بخش را در موقعیت مشخصشده درج میکند.
pos یکی از این موارد است: رشتهی "end"، یک اندیس عدد صحیح، یا نام یک فرزند مدیریتشده. اگر child از قبل تحت مدیریت نوتبوک باشد، آن را به جایگاه مشخصشده جابهجا میکند.
برای دیدن فهرست گزینههای موجود، Tab Options را ببینید.
tab_id مشخصشده را انتخاب میکند.
پنجره فرزند مرتبط نمایش داده خواهد شد، و پنجره انتخابشده پیشین (در صورت متفاوت بودن) از نمایش برداشته میشود. اگر tab_id ذکر نشود، نام ابزارک بخش انتخابشده کنونی را برمیگرداند.
گزینههای مربوط به tab_id مشخص را پرسوجو یا تغییر دهید.
اگر kw داده نشود، یک دیکشنری از مقادیر گزینههای زبانه را برمیگرداند. اگر option مشخص شده باشد، مقدار آن option را برمیگرداند. در غیر این صورت، گزینهها را روی مقادیر متناظر تنظیم میکند.
تاپلی از پنجرههای تحت مدیریت نوتبوک را برمیگرداند.
فعالسازی پیمایش با صفحهکلید برای یک پنجرهی سطح بالا که حاوی این دفترچه است.
این کار اتصالهای پنجرهی سطح بالا حاوی notebook را بهصورت زیر گسترش میدهد:
Control-Tab: زبانهی پس از زبانهی انتخابشدهی کنونی را انتخاب میکند.
Shift-Control-Tab: زبانهی پیش از زبانهی انتخابشدهی کنونی را انتخاب میکند.
Alt-K: که در آن K نویسهی یادآور (mnemonic) و زیرخطدار هر زبانه است، آن زبانه را انتخاب میکند.
میتوان چندین نوتبوک را در یک سطح بالا واحد برای پیمایش (traversal) فعال کرد، از جمله نوتبوکهای تودرتو. با این حال، پیمایش نوتبوک تنها در صورتی بهدرستی کار میکند که همه بخشها (panes) فرزندان مستقیم نوتبوک باشند.
ابزارک ttk.Progressbar وضعیت یک عملیات طولانیمدت را نشان میدهد. این ابزارک میتواند در دو حالت کار کند: ۱) حالت مشخص که مقدار تکمیلشده را نسبت به کل مقدار کاری که باید انجام شود نشان میدهد و ۲) حالت نامشخص که نمایشی متحرک ارائه میکند تا کاربر بداند کار در حال پیشرفت است.
این ابزارک گزینههای خاص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
جهتدهی |
یکی از «horizontal» یا «vertical». جهت نوار پیشرفت را مشخص میکند. |
طول |
طول محور بلند نوار پیشرفت را مشخص میکند (عرض در حالت افقی، ارتفاع در حالت عمودی). |
حالت |
یکی از «determinate» یا «indeterminate». |
بیشینه |
عددی که حداکثر مقدار را مشخص میکند. پیشفرض آن ۱۰۰ است. |
مقدار |
مقدار فعلی نوار پیشرفت. در حالت «تعیینشده»، این مقدار نشاندهندهی میزان کار انجامشده است. در حالت «تعییننشده»، بهصورت باقیماندهی تقسیم بر maximum تفسیر میشود؛ یعنی نوار پیشرفت هنگامی که مقدار آن به اندازهی maximum افزایش یابد، یک «چرخه» را کامل میکند. |
متغیر |
نامی که به مقدار گزینه پیوند دارد. اگر مشخص شود، مقدار نوار پیشرفت بهطور خودکار هر زمان که این نام تغییر کند، به مقدار آن تنظیم میشود. |
مرحله |
گزینه فقط خواندنی. ابزارک بهطور دورهای مقدار این گزینه را هر زمان که مقدار آن بزرگتر از ۰ و، در حالت قطعی، کمتر از حداکثر باشد، افزایش میدهد. این گزینه ممکن است توسط پوسته فعلی برای ایجاد جلوههای پویانمایی بیشتر استفاده شود. |
آغاز حالت افزایش خودکار (autoincrement): یک رویداد زمانسنج دورهای را زمانبندی میکند که Progressbar.step() را هر interval میلیثانیه فراخوانی میکند. در صورت حذف، interval بهطور پیشفرض ۵۰ میلیثانیه است.
مقدار نوار پیشرفت را به اندازهی amount افزایش میدهد.
در صورت حذف، amount بهطور پیشفرض 1.0 خواهد بود.
توقف حالت افزایش خودکار: هر رویداد زمانسنج تکرارشوندهای را که توسط Progressbar.start() برای این نوار پیشرفت آغاز شده باشد، لغو میکند.
ابزارک ttk.Separator یک نوار جداکننده افقی یا عمودی را نمایش میدهد.
هیچ متد دیگری به جز متدهایی که از ttk.Widget به ارث برده است، ندارد.
این ابزارک گزینهی مشخص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
جهتدهی |
یکی از «horizontal» یا «vertical». جهت جداکننده را مشخص میکند. |
ابزارک ttk.Sizegrip (که با نام جعبهی رشد (grow box) نیز شناخته میشود) به کاربر امکان میدهد با فشار دادن و کشیدن دسته، اندازهی پنجرهی سطح بالای حاوی آن را تغییر دهد.
این ابزارک نه گزینههای خاصی دارد و نه متدهای خاصی، بهجز آنهایی که از ttk.Widget به ارث برده است.
در macOS، پنجرههای سطح بالا بهطور پیشفرض بهصورت خودکار شامل یک دستهی تغییر اندازهی توکار هستند. افزودن یک Sizegrip بیضرر است، زیرا دستهی توکار فقط ابزارک را میپوشاند.
اگر موقعیت پنجرهی سطح بالای حاوی آن نسبت به سمت راست یا پایین صفحهنمایش مشخص شده باشد (برای مثال، ....)، ابزارک Sizegrip اندازهی پنجره را تغییر نخواهد داد.
این ابزارک فقط از تغییر اندازه در جهت «جنوبشرقی» پشتیبانی میکند.
ابزارک ttk.Treeview مجموعهای سلسلهمراتبی از آیتمها را نمایش میدهد. هر آیتم دارای یک برچسب متنی، یک تصویر اختیاری و یک فهرست اختیاری از مقادیر داده است. مقادیر داده در ستونهای متوالی پس از برچسب درخت نمایش داده میشوند.
ترتیب نمایش مقادیر داده را میتوان با تنظیم گزینهی displaycolumns ابزارک کنترل کرد. ابزارک درختی همچنین میتواند عنوان ستونها را نمایش دهد. میتوان به ستونها از طریق شماره یا نامهای نمادین فهرستشده در گزینهی columns ابزارک دسترسی داشت. به Column Identifiers مراجعه کنید.
هر آیتم با یک نام یکتا مشخص میشود. اگر شناسههای آیتم توسط فراخواننده ارائه نشده باشند، ابزارک آنها را تولید خواهد کرد. یک آیتم ریشهی متمایز با نام {} وجود دارد. خود آیتم ریشه نمایش داده نمیشود؛ فرزندان آن در بالاترین سطح سلسلهمراتب نمایش داده میشوند.
هر آیتم همچنین دارای فهرستی از برچسبها است که میتوان از آنها برای مرتبط کردن اتصالهای رویداد با آیتمهای منفرد و کنترل ظاهر آیتم استفاده کرد.
ابزارک Treeview از پیمایش افقی و عمودی پشتیبانی میکند، بر اساس گزینههای توصیفشده در Scrollable Widget Options و متدهای Treeview.xview() و Treeview.yview().
این ابزارک گزینههای خاص زیر را میپذیرد:
گزینه |
توضیحات |
|---|---|
columns |
فهرستی از شناسههای ستون، که تعداد ستونها و نامهای آنها را مشخص میکند. |
displaycolumns |
فهرستی از شناسههای ستون (یا شناسههای نمادین یا اندیسهای عدد صحیح) که مشخص میکند کدام ستونهای داده نمایش داده میشوند و ترتیبی که با آن ظاهر میشوند، یا رشته "#all". |
ارتفاع |
تعداد ردیفهایی را که باید قابل مشاهده باشند، مشخص میکند. توجه: عرض درخواستشده از مجموع عرض ستونها تعیین میشود. |
پرکننده (padding) |
فاصلهگذاری داخلی ابزارک را مشخص میکند. فاصلهگذاری فهرستی از حداکثر چهار مشخصهی طول است. |
selectmode |
تعیین میکند که اتصالهای کلاس توکار چگونه انتخاب را مدیریت کنند. یکی از "extended"، "browse" یا "none" است. اگر روی "extended" (پیشفرض) تنظیم شود، میتوان چند آیتم را انتخاب کرد. اگر "browse" باشد، در هر زمان فقط یک آیتم انتخاب خواهد شد. اگر "none" باشد، انتخاب تغییر نخواهد کرد. توجه داشته باشید که کد برنامه و اتصالهای برچسب (tag bindings) میتوانند انتخاب را به هر شکلی که بخواهند تنظیم کنند، صرفنظر از مقدار این گزینه. |
show |
فهرستی شامل صفر یا چند مقدار از مقادیر زیر، که مشخص میکند کدامیک از عناصر درخت نمایش داده شوند.
پیشفرض "tree headings" است، یعنی تمام المانها نمایش داده میشوند. توجه: ستون #0 همیشه به ستون درختی اشاره میکند، حتی اگر show="tree" تعیین نشده باشد. |
نکته
Tk 9.0 چندین ویژگی برای Treeview افزود. گزینهی selectmode دارای مقادیر "single" و "multiple" شد؛ گزینههای جدید ابزارک یعنی selecttype (انتخاب "item" یا "cell")، striped (ردیفهای راهراه گورخری) و titlecolumns / titleitems (ستونها یا ردیفهای ثابت هنگام پیمایش) معرفی شدند؛ گزینهی separator برای ستون افزوده شد؛ و آیتمها دارای یک گزینهی hidden شدند. Tk 9.1 گزینههای rowheight و headingheight را افزود.
میتوان گزینههای آیتم زیر را برای آیتمها در دستورات ابزارک insert و item مشخص کرد.
گزینه |
توضیحات |
|---|---|
متن |
برچسب متنی که برای آیتم نمایش داده میشود. |
تصویر |
یک تصویر Tk، که در سمت چپ برچسب نمایش داده میشود. |
مقادیر |
فهرست مقادیر مرتبط با آیتم. هر آیتم باید به همان تعداد ستونهای گزینهی ابزارک مقدار داشته باشد. اگر تعداد مقادیر کمتر از تعداد ستونها باشد، مقادیر باقیمانده خالی فرض میشوند. اگر تعداد مقادیر بیشتر از تعداد ستونها باشد، مقادیر اضافی نادیده گرفته میشوند. |
open |
مقدار |
tags |
فهرستی از برچسبهای مرتبط با این آیتم. |
میتوان گزینههای زیر را روی برچسبها مشخص کرد:
گزینه |
توضیحات |
|---|---|
foreground |
رنگ پیشزمینهی متن را مشخص میکند. |
پسزمینه |
رنگ پسزمینهی سلول یا آیتم را مشخص میکند. |
font |
قلم مورد استفاده هنگام ترسیم متن را مشخص میکند. |
تصویر |
تصویر آیتم را مشخص میکند، در صورتی که گزینهی تصویر آیتم خالی باشد. |
شناسههای ستون میتوانند هر یک از شکلهای زیر را داشته باشند:
یک نام نمادین از گزینهی فهرست ستونها.
یک عدد صحیح n، که n-امین ستون داده را مشخص میکند.
رشتهای به شکل #n، که n یک عدد صحیح است و nاُمین ستون نمایش را مشخص میکند.
یادداشتها:
ممکن است مقادیر گزینههای آیتم به ترتیبی متفاوت از ترتیبی که در آن ذخیرهشدهاند نمایش داده شوند.
ستون #0 همیشه به ستون درختی اشاره میکند، حتی اگر show="tree" مشخص نشده باشد.
شمارهی ستون داده، اندیسی به فهرست مقادیر گزینههای یک آیتم است؛ شمارهی ستون نمایشی، شمارهی ستونی در درخت است که مقادیر در آن نمایش داده میشوند. برچسبهای درخت در ستون #0 نمایش داده میشوند. اگر گزینهی displaycolumns تنظیم نشده باشد، ستون دادهی n در ستون #n+1 نمایش داده میشود. باز هم، ستون #0 همیشه به ستون درخت اشاره میکند.
ابزارک Treeview رویدادهای مجازی زیر را تولید میکند.
رویداد |
توضیحات |
|---|---|
<<TreeviewSelect>> |
هر زمان که انتخاب تغییر کند، تولید میشود. |
<<TreeviewOpen>> |
درست پیش از تنظیم آیتم فوکوس به open=True تولید میشود. |
<<TreeviewClose>> |
بلافاصله پس از تنظیم آیتم فوکوس به open=False تولید میشود. |
میتوان از متدهای Treeview.focus() و Treeview.selection() برای تعیین آیتم یا آیتمهای تحتتأثیر استفاده کرد.
جعبهی محدودکنندهی آیتم مشخصشده را (نسبت به پنجرهی ابزارک treeview) در قالب (x, y, width, height) برمیگرداند.
اگر column مشخص شده باشد، جعبهی محدودکننده (bounding box) آن سلول را برمیگرداند. اگر item قابل مشاهده نباشد (یعنی نوادهی یک آیتم بسته باشد یا به بیرون از صفحه اسکرول شده باشد)، یک رشتهی خالی برمیگرداند.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبه محدودکننده شبکه از grid_bbox() استفاده کنید.
یک تاپل از فرزندانِ متعلق به item برمیگرداند.
اگر item مشخص نشده باشد، فرزندان ریشه را برمیگرداند.
فرزندان item را با newchildren جایگزین میکند.
فرزندانی که در item وجود دارند اما در newchildren وجود ندارند، از درخت جدا میشوند. هیچیک از آیتمهای درون newchildren نباید نیا آیتم item باشد. توجه داشته باشید که مشخص نکردن newchildren منجر به جدا شدن فرزندان item میشود.
گزینههای ستون مشخصشده را بازخوانی یا تغییر دهید.
اگر kw داده نشده باشد، یک دیکشنری از مقادیر گزینههای ستون را برمیگرداند. اگر option مشخص شده باشد، مقدار آن option برگردانده میشود. در غیر این صورت، گزینهها را روی مقادیر متناظر تنظیم میکند.
گزینهها/مقادیر معتبر عبارتند از:
نام ستون را برمیگرداند. این گزینه فقطخواندنی است.
مشخص میکند که متن این ستون چگونه باید نسبت به سلول تراز شود.
حداقل عرض ستون بر حسب پیکسل. هنگامی که اندازه ابزارک تغییر کند یا کاربر ستونی را بکشد، ابزارک treeview ستون را کوچکتر از مقدار مشخصشده توسط این گزینه نمیکند.
True/Falseمشخص میکند که آیا جداکنندهی ستون باید در سمت راست ستون رسم شود یا خیر.
True/Falseمشخص میکند که آیا عرض ستون باید هنگام تغییر اندازهی ابزارک تنظیم شود یا خیر.
عرض ستون بر حسب پیکسل.
برای پیکربندی ستون درخت، این را با column = "#0" فراخوانی کنید.
تمام آیتمهای مشخصشده و همهی زیرمجموعههای آنها را حذف کنید.
آیتم ریشه را نمیتوان حذف کرد.
پیوند تمام آیتمهای مشخصشده را از درخت جدا میکند.
آیتمها و همهی زیرمجموعههای آنها همچنان موجود هستند و میتوانند در نقطهی دیگری از درخت دوباره درج شوند، اما نمایش داده نخواهند شد.
آیتم ریشه را نمیتوان جدا کرد.
اگر آیتم مشخصشده در درخت موجود باشد، True و در غیر این صورت False را برمیگرداند.
اگر item مشخص شده باشد، آیتم فوکوس را روی item تنظیم میکند. در غیر این صورت، آیتم فوکوس جاری را برمیگرداند، یا اگر هیچ آیتمی وجود نداشته باشد '' را برمیگرداند.
این، Misc.focus() ارثبریشده را میپوشاند؛ برای قرار دادن تمرکز روی خود ابزارک، از focus_set() استفاده کنید.
گزینههای سرستون برای column مشخصشده را بخوانید یا تغییر دهید.
اگر kw داده نشود، یک دیکشنری از مقادیر گزینههای عنوان برمیگرداند. اگر option مشخص شده باشد، مقدار آن option برگردانده میشود. در غیر این صورت، گزینهها را روی مقادیر متناظر تنظیم میکند.
گزینهها/مقادیر معتبر عبارتند از:
متنی که در عنوان ستون نمایش داده میشود.
تصویری را برای نمایش در سمت راست عنوان ستون مشخص میکند.
مشخص میکند که متن عنوان باید چگونه تراز شود. یکی از مقادیر استاندارد لنگر در Tk است.
یک کالبک که هنگام فشرده شدن برچسب عنوان فراخوانی میشود.
برای پیکربندی عنوان ستون درخت، این را با column = "#0" فراخوانی کنید.
توضیحی از کامپوننت مشخصشده در زیر نقطهای که با x و y داده شده است برمیگرداند، یا اگر چنین کامپوننتی در آن موقعیت وجود نداشته باشد، رشته خالی را برمیگرداند.
شناسهی آیتم در موقعیت y را برمیگرداند.
شناسهی ستون نمایشی سلول در موقعیت x را بازمیگرداند.
ستون درخت دارای شناسه #0 است.
یکی از موارد زیر را برمیگرداند:
ناحیه |
معنی |
|---|---|
heading |
ناحیه سرآیند درخت. |
separator |
فاصله میان دو عنوان ستون. |
tree |
ناحیهی درخت. |
cell |
یک سلول داده. |
دسترسپذیری: Tk 8.6.
عنصر در موقعیت x، y را برمیگرداند.
دسترسپذیری: Tk 8.6.
اندیس عدد صحیح item را در فهرست فرزندان والدش برمیگرداند.
یک آیتم جدید ایجاد میکند و شناسه آیتم تازهایجادشده را برمیگرداند.
parent شناسهی آیتم والد است، یا رشتهی خالی برای ایجاد یک آیتم سطحبالای جدید. index یک عدد صحیح است، یا مقدار "end"، و مشخص میکند که آیتم جدید در کجای فهرست فرزندان والد درج شود. اگر index کمتر یا مساوی ۰ باشد، گره جدید در ابتدا درج میشود؛ اگر index بزرگتر یا مساوی تعداد فعلی فرزندان باشد، در انتها درج میشود. اگر iid مشخص شده باشد، بهعنوان شناسهی آیتم استفاده میشود؛ iid نباید از قبل در درخت وجود داشته باشد. در غیر این صورت، یک شناسهی یکتای جدید تولید میشود.
برای دیدن فهرست گزینههای موجود، Item Options را ببینید.
گزینهها را برای آیتم مشخصشده پرسوجو یا تغییر دهید.
اگر هیچ گزینهای داده نشود، یک دیکشنری شامل گزینهها/مقادیر آیتم بازگردانده میشود. اگر option مشخص شده باشد، مقدار آن گزینه بازگردانده میشود. در غیر این صورت، گزینهها به مقادیر متناظری که توسط kw داده شدهاند تنظیم میشوند.
item را به جایگاه index در فهرست فرزندان parent منتقل میکند.
جابهجایی یک آیتم به زیر یکی از نوادگان آن غیرمجاز است. اگر index کوچکتر یا مساوی صفر باشد، item به ابتدا منتقل میشود؛ اگر بزرگتر یا مساوی تعداد فرزندان باشد، به انتها منتقل میشود. اگر item جداشده باشد، دوباره متصل میشود.
reattach() نام مستعار move() است.
شناسهی خواهر بعدی item را بازمیگرداند، یا اگر item آخرین فرزند والد خود باشد '' را بازمیگرداند.
شناسهی والد item را برمیگرداند، یا اگر item در بالاترین سطح سلسلهمراتب باشد، '' را برمیگرداند.
شناسهی همسطح قبلی item را برمیگرداند، یا اگر item اولین فرزند والد خود باشد، '' برمیگرداند.
اطمینان حاصل کنید که item قابل مشاهده است.
گزینهی open را برای تمام نیاکان item روی True تنظیم میکند و در صورت لزوم، ابزارک را پیمایش میکند تا item در بخش قابلمشاهدهی درخت قرار گیرد.
یک تاپل از آیتمهای انتخابشده را برمیگرداند.
تغییر یافته در نسخهی 3.8: selection() دیگر آرگومان نمیپذیرد. برای تغییر وضعیت انتخاب، از متدهای انتخاب زیر استفاده کنید.
items به انتخاب جدید تبدیل میشود.
تغییر یافته در نسخهی 3.6: items را میتوان بهصورت آرگومانهای جداگانه ارسال کرد، نه فقط بهعنوان یک تاپل واحد.
items را به انتخاب اضافه کنید.
تغییر یافته در نسخهی 3.6: items را میتوان بهصورت آرگومانهای جداگانه ارسال کرد، نه فقط بهعنوان یک تاپل واحد.
آیتمها را از انتخاب حذف کنید.
تغییر یافته در نسخهی 3.6: items را میتوان بهصورت آرگومانهای جداگانه ارسال کرد، نه فقط بهعنوان یک تاپل واحد.
وضعیت انتخاب هر یک از آیتمهای items را تغییر دهید.
تغییر یافته در نسخهی 3.6: items را میتوان بهصورت آرگومانهای جداگانه ارسال کرد، نه فقط بهعنوان یک تاپل واحد.
با ۱ آرگومان، یک دیکشنری از جفتهای ستون/مقدار برای آیتم مشخصشده برمیگرداند. با ۲ آرگومان، مقدار فعلی ستون مشخصشده را برمیگرداند. با ۳ آرگومان، مقدار ستون دادهشده در آیتم دادهشده را به مقدار مشخصشده تنظیم میکند.
یک کالبک را برای دنبالهی رویداد دادهشده sequence به برچسب tagname مقید کنید. هنگامی که یک رویداد به یک آیتم تحویل داده میشود، کالبکهای هر یک از برچسبهای گزینهی tags آن آیتم فراخوانی میشوند.
گزینههای tagname مشخصشده را بخوانید یا تغییر دهید.
اگر kw داده نشود، یک دیکشنری از تنظیمات گزینهها را برای tagname برمیگرداند. اگر option مشخص شده باشد، مقدار آن option را برای tagname مشخصشده برمیگرداند. در غیر این صورت، گزینهها را روی مقادیر متناظر برای tagname دادهشده تنظیم میکند.
اگر item مشخص شده باشد، در صورتی که item مشخصشده tagname دادهشده را داشته باشد، True و در غیر این صورت False برمیگرداند. در غیر این صورت، یک تاپل از تمام آیتمهایی که برچسب مشخصشده را دارند برمیگرداند.
دسترسپذیری: Tk 8.6
موقعیت افقی نمای درختی (treeview) را بپرسید یا تغییر دهید.
موقعیت عمودی treeview را پرسوجو کنید یا تغییر دهید.
به هر ابزارک در ttk یک سبک اختصاص داده میشود که مجموعهی المانهای تشکیلدهندهی ابزارک و نحوهی چیدمان آنها را بههمراه تنظیمات پویا و پیشفرض برای گزینههای المانها مشخص میکند. بهطور پیشفرض، نام سبک همان نام کلاس ابزارک است، اما ممکن است توسط گزینهی style ابزارک بازنویسی شود. اگر نام کلاس یک ابزارک را نمیدانید، از متد Misc.winfo_class (somewidget.winfo_class()) استفاده کنید.
همچنین ببینید
صفحه man مربوط به ttk::intro توضیح میدهد که موتور پوسته چگونه کار میکند.
مقالهی جو انگلیش در سال ۲۰۰۴ که موتور پوسته (theme engine) را معرفی میکرد (در آن زمان، افزونهی جداگانهی Tile)، به همراه نمودارهایی از اینکه عناصر و چیدمانها چگونه ظاهر یک ابزارک را تشکیل میدهند.
این کلاس برای دستکاری پایگاه دادهی سبک استفاده میشود.
مقدار پیشفرض گزینه(های) مشخصشده در style را بخوانید یا تنظیم کنید.
هر کلید در kw یک گزینه است و هر مقدار، رشتهای است که مقدار آن گزینه را مشخص میکند.
برای مثال، برای تبدیل هر دکمه پیشفرض به دکمهای تخت با کمی فاصله داخلی و رنگ پسزمینه متفاوت:
from tkinter import ttk import tkinter root = tkinter.Tk() ttk.Style().configure("TButton", padding=6, relief="flat", background="#ccc") btn = ttk.Button(text="Sample") btn.pack() root.mainloop()
مقادیر پویای گزینه(های) مشخصشده در style را بازخوانی یا تنظیم میکند.
هر کلید در kw یک گزینه است و هر مقدار باید (معمولاً) یک فهرست یا تاپل حاوی مشخصههای وضعیت (statespecs) باشد که در تاپلها، فهرستها یا ترجیحی دیگر گروهبندی شدهاند. یک مشخصه وضعیت (statespec) ترکیبی از یک یا چند وضعیت و سپس یک مقدار است.
یک مثال ممکن است آن را قابلفهمتر کند:
import tkinter from tkinter import ttk root = tkinter.Tk() style = ttk.Style() style.map("C.TButton", foreground=[('pressed', 'red'), ('active', 'blue')], background=[('pressed', '!disabled', 'black'), ('active', 'white')] ) colored_btn = ttk.Button(text="Test", style="C.TButton").pack() root.mainloop()
توجه داشته باشید که ترتیب دنبالههای (حالتها، مقدار) برای یک گزینه اهمیت دارد؛ برای مثال، اگر ترتیب در گزینهی foreground به [('active', 'blue'), ('pressed', 'red')] تغییر کند، زمانی که ابزارک در حالتهای active یا pressed باشد، نتیجه پیشزمینهای آبی خواهد بود.
هنگامی که برای پرسوجوی نگاشت فراخوانی شود (بدون مشخص کردن مقادیر برای تنظیم)، یک دیکشنری برمیگرداند که هر گزینه را به فهرست مشخصات وضعیت (statespecs) مربوط به آن نگاشت میکند.
تغییر یافته در نسخهی 3.10: مقدار برگرداندهشده هنگام پرسوجو از map اصلاح شد.
مقدار تعیینشده برای option در style را برمیگرداند.
اگر state مشخص شده باشد، انتظار میرود دنبالهای از یک یا چند وضعیت باشد. اگر آرگومان default تنظیم شده باشد، بهعنوان مقدار جایگزین در صورتی استفاده میشود که هیچ مشخصهای برای گزینه یافت نشود.
برای بررسی اینکه یک Button بهطور پیشفرض از چه فونتی استفاده میکند:
from tkinter import ttk print(ttk.Style().lookup("TButton", "font"))
چیدمان ابزارک برای style دادهشده را تعریف میکند. اگر layoutspec حذف شود، مشخصات چیدمان برای style دادهشده را برمیگرداند.
layoutspec، در صورت مشخص شدن، انتظار میرود یک فهرست یا نوع دیگری از دنباله (بهجز رشتهها) باشد، که هر آیتم باید یک تاپل باشد، آیتم اول نام چیدمان است و آیتم دوم باید دارای قالب توصیفشده در Layouts باشد.
برای درک قالب، مثال زیر را ببینید (هدف آن انجام کار مفیدی نیست):
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.layout("TMenubutton", [ ("Menubutton.background", None), ("Menubutton.button", {"children": [("Menubutton.focus", {"children": [("Menubutton.padding", {"children": [("Menubutton.label", {"side": "left", "expand": 1})] })] })] }), ]) mbtn = ttk.Menubutton(text='Text') mbtn.pack() root.mainloop()
یک عنصر جدید در پوسته فعلی ایجاد کنید، از etype دادهشده که انتظار میرود یکی از "image"، "from" یا "vsapi" باشد. مورد آخر فقط در Tk 8.6 در ویندوز در دسترس است.
اگر از "image" استفاده شود، args باید شامل نام تصویر پیشفرض و پس از آن جفتهای statespec/value باشد (این imagespec است)، و kw میتواند گزینههای زیر را داشته باشد:
فاصله داخلی (padding) فهرستی از حداکثر چهار عدد صحیح است که بهترتیب حاشیههای چپ، بالا، راست و پایین را مشخص میکند.
حداقل ارتفاع برای المان را مشخص میکند. اگر کمتر از صفر باشد، ارتفاع تصویر پایه بهعنوان پیشفرض استفاده میشود.
فاصلهی داخلی (padding) المان را مشخص میکند. اگر مشخص نشده باشد، بهطور پیشفرض مقدار حاشیه (border) را میگیرد.
مشخص میکند که تصویر چگونه درون قطعه نهایی (parcel) قرار میگیرد. spec شامل صفر یا چند نویسه "n"، "s"، "w" یا "e" است.
حداقل عرض را برای المان مشخص میکند. اگر کمتر از صفر باشد، عرض تصویر پایه بهعنوان پیشفرض استفاده میشود.
مثال:
img1 = tkinter.PhotoImage(master=root, file='button.png') img1 = tkinter.PhotoImage(master=root, file='button-pressed.png') img1 = tkinter.PhotoImage(master=root, file='button-active.png') style = ttk.Style(root) style.element_create('Button.button', 'image', img1, ('pressed', img2), ('active', img3), border=(2, 4), sticky='we')
اگر "from" بهعنوان مقدار etype استفاده شود، element_create() یک المان موجود را رونوشت میکند. انتظار میرود args شامل یک نام تم باشد که المان از آن رونوشت میشود، و بهصورت اختیاری شامل المانی باشد که از آن رونوشت میشود. اگر این المانی که از آن رونوشت میشود مشخص نشده باشد، از یک المان خالی استفاده خواهد شد. kw نادیده گرفته میشود.
مثال:
style = ttk.Style(root) style.element_create('plain.background', 'from', 'default')
اگر از "vsapi" بهعنوان مقدار etype استفاده شود، element_create() المانی جدید در پوستهی جاری ایجاد میکند که ظاهر بصری آن با استفاده از Microsoft Visual Styles API، که مسئول سبکهای پوستهای در Windows XP و Vista است، ترسیم میشود. انتظار میرود args شامل کلاس و بخش Visual Styles، همانطور که در مستندات مایکروسافت آمده است، و بهدنبال آنها دنبالهای اختیاری از تاپلهای شامل وضعیتهای ttk و مقدار وضعیت متناظر Visual Styles API باشد. kw میتواند گزینههای زیر را داشته باشد:
فاصلهی داخلی المان را مشخص کنید. padding فهرستی از حداکثر ۴ عدد صحیح است که بهترتیب مقادیر فاصلهی داخلی چپ، بالا، راست و پایین را مشخص میکند. اگر کمتر از ۴ عنصر مشخص شده باشد، مقدار پیشفرض پایین برابر با بالا، راست برابر با چپ، و بالا برابر با چپ خواهد بود. به عبارت دیگر، فهرستی از ۳ عدد، فاصلهی داخلی چپ، عمودی و راست را مشخص میکند؛ فهرستی از ۲ عدد، فاصلهی داخلی افقی و عمودی را مشخص میکند؛ و یک عدد، فاصلهی داخلی یکسانی را در تمام اطراف ابزارک مشخص میکند. این گزینه را نمیتوان با هیچ گزینهی دیگری ترکیب کرد.
فاصله بیرونی (padding) المان را مشخص میکند. padding فهرستی از حداکثر چهار عدد صحیح است که بهترتیب مقادیر فاصله بیرونی چپ، بالا، راست و پایین را مشخص میکند. این گزینه نمیتواند با هیچ گزینه دیگری ترکیب شود.
عرض المان را مشخص میکند. اگر این گزینه تنظیم شده باشد، از Visual Styles API برای اندازه توصیهشده یا بخش پرسوجو نخواهد شد. اگر این گزینه تنظیم شده باشد، height نیز باید تنظیم شود. گزینههای width و height را نمیتوان با گزینههای padding یا margins ترکیب کرد.
ارتفاع المان را مشخص میکند. برای width به توضیحات مراجعه کنید.
مثال:
style = ttk.Style(root) style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [ ('pressed', '!selected', 3), ('active', '!selected', 2), ('pressed', 'selected', 6), ('active', 'selected', 5), ('selected', 4), ('', 1)]) style.layout('Explorer.Pin', [('Explorer.Pin.pin', {'sticky': 'news'})]) pin = ttk.Checkbutton(style='Explorer.Pin') pin.pack(expand=True, fill='both')
تغییر یافته در نسخهی 3.13: پشتیبانی از کارخانهی المان "vsapi" افزوده شد.
یک تاپل از عناصر تعریفشده در پوستهی جاری برمیگرداند.
یک تاپل از گزینههای elementname را برمیگرداند.
یک پوسته جدید ایجاد کنید.
اگر themename از قبل وجود داشته باشد، خطا محسوب میشود. اگر parent تعیین شده باشد، پوستهی جدید سبکها، عناصر و چیدمانها را از پوستهی والد به ارث میبرد. اگر settings موجود باشند، انتظار میرود که همان نحوی را داشته باشند که برای theme_settings() استفاده میشود.
بهطور موقت پوستهی فعلی را به themename تنظیم میکند، settings مشخصشده را اعمال میکند و سپس پوستهی قبلی را بازمیگرداند.
هر کلید در settings یک سبک است و هر مقدار ممکن است شامل کلیدهای 'configure'، 'map'، 'layout' و 'element create' باشد و انتظار میرود آنها به ترتیب همان قالب مشخصشده توسط متدهای Style.configure()، Style.map()، Style.layout() و Style.element_create() را داشته باشند.
بهعنوان مثال، بیایید Combobox را برای پوستهی پیشفرض کمی تغییر دهیم:
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.theme_settings("default", { "TCombobox": { "configure": {"padding": 5}, "map": { "background": [("active", "green2"), ("!disabled", "green4")], "fieldbackground": [("!disabled", "green3")], "foreground": [("focus", "OliveDrab1"), ("!disabled", "OliveDrab2")] } } }) combo = ttk.Combobox().pack() root.mainloop()
تاپلی از تمام پوستههای شناختهشده را برمیگرداند.
اگر themename داده نشود، پوستهی در حال استفاده را برمیگرداند. در غیر این صورت، پوستهی فعلی را روی themename تنظیم میکند، همهی ابزارکها را تازهسازی میکند و یک رویداد <<ThemeChanged>> منتشر میکند.
یک چیدمان میتواند صرفاً None باشد، اگر گزینهای نمیپذیرد، یا یک دیکشنری از گزینهها باشد که نحوهی چیدمان المان را مشخص میکند. سازوکار چیدمان از یک نسخهی سادهشدهی مدیر هندسی pack استفاده میکند: با فرض یک حفرهی اولیه، به هر المان یک قطعه تخصیص داده میشود.
گزینهها/مقادیر معتبر عبارتند از:
مشخص میکند که المان در کدام سمت حفره قرار گیرد؛ یکی از top، right، bottom یا left. اگر حذف شود، المان کل حفره را اشغال میکند.
مشخص میکند که المان درون قطعهی تخصیصیافتهی خود کجا قرار میگیرد.
اگر روی ۱ تنظیم شود، باعث میشود المان و همه زیرمجموعههای آن برای مقاصد Widget.identify() و متدهای مشابه، بهعنوان یک المان واحد در نظر گرفته شوند. این گزینه برای مواردی مانند انگشتیهای نوار پیمایش (scrollbar thumbs) دارای دسته استفاده میشود.
فهرستی از المانها را برای قرار دادن درون المان مشخص میکند. هر المان یک تاپل (یا نوع دنبالهای دیگر) است که نخستین آیتم آن نام چیدمان است و دومی یک Layout است.
ابزارکهای پوستهدار زیر، مجموعه ابزارکهای tkinter.ttk را کامل میکنند. هر یک همتای پوستهدار ابزارک کلاسیک همنام در tkinter است و متدهای مشترک Widget را به ارث میبرد.
ابزارک Button در Ttk، یک برچسب متنی و/یا تصویر را نمایش میدهد و هنگام فشرده شدن، یک فرمان را ارزیابی میکند. این ابزارک، همتای پوستهدار tkinter.Button است و متدهای رایج ابزارکها را از Widget به ارث میبرد.
فرمان مرتبط با دکمه را فراخوانی میکند و نتیجهی آن را برمیگرداند.
ابزارک Checkbutton در Ttk، برای کنترل یک متغیر بولی استفاده میشود که بین حالت روشن و خاموش تغییر وضعیت میدهد. این ابزارک، همتای پوستهدار tkinter.Checkbutton است و متدهای رایج ابزارکها را از Widget به ارث میبرد.
وضعیت دکمه را بین حالتهای انتخابشده و انتخابنشده تغییر میدهد، فرمان مرتبط با دکمه را فراخوانی میکند و نتیجهی آن را بازمیگرداند.
ابزارک Entry در Ttk، یک رشته متنی یکخطی را نمایش میدهد و به کاربر امکان ویرایش آن را میدهد. این ابزارک، همتای پوستهدار tkinter.Entry است و متدهای رایج ابزارک را از Widget و همچنین متدهای ویرایشی را از tkinter.Entry به ارث میبرد.
یک تاپل (x, y, width, height) برمیگرداند که جعبه محدودکننده (bounding box) نویسه در اندیس دادهشده را میدهد.
این، Misc.bbox() موروثی را میپوشاند؛ برای جعبه محدودکننده شبکه از grid_bbox() استفاده کنید.
نام عنصری که در زیر نقطه مشخصشده با x و y قرار دارد را برمیگرداند، یا رشته خالی اگر هیچ عنصری در آن موقعیت وجود نداشته باشد.
اعتبارسنجی ورودی را اجباری میکند و در صورت موفقیتآمیز بودن اعتبارسنجی، True و در غیر این صورت False برمیگرداند.
ابزارک Frame در Ttk، یک ظرف است که برای گروهبندی و چیدمان سایر ابزارکها استفاده میشود. این ابزارک، همتای پوستهدار tkinter.Frame است و متدهای مشترک ابزارکها را از Widget به ارث میبرد.
ابزارک Label در Ttk، یک برچسب متنی و/یا تصویر را نمایش میدهد. این ابزارک همتای تمدار tkinter.Label است و متدهای رایج ابزارکها را از Widget به ارث میبرد.
ابزارک Ttk Labelframe، ظرفی است که دور محتوای خود یک کادر و یک برچسب عنوان ترسیم میکند. این ابزارک همتای تمدارِ tkinter.LabelFrame است و متدهای رایج ابزارک را از Widget به ارث میبرد.
ابزارک Menubutton در Ttk، یک برچسب متنی و/یا تصویر را نمایش میدهد و هنگامی که فشرده میشود، یک منو را بهصورت بازشو ظاهر میکند. این ابزارک، همتای پوستهدار tkinter.Menubutton است و متدهای رایج ابزارک را از Widget به ارث میبرد.
ابزارک OptionMenu در Ttk، یک Menubutton است که منویی از گزینههای انحصاری متقابل را بهصورت بازشو نمایش میدهد. variable متغیری است که مقدار انتخابشدهی فعلی را پیگیری میکند، default مقداری است که در ابتدا تنظیم میشود، و values آیتمهایی هستند که در منو نمایش داده میشوند. میتوان یک آرگومان کلیدواژهای command را برای مشخص کردن یک شیء فراخوانیپذیر ارائه کرد که هر زمان انتخاب تغییر کند، با مقدار انتخابشده فراخوانی میشود؛ آرگومان کلیدواژهای style سبک مورد استفاده در menubutton زیربنایی را تنظیم میکند؛ آرگومان کلیدواژهای direction محل نمایش منو نسبت به menubutton را تنظیم میکند (یکی از 'above'، 'below' (پیشفرض)، 'left'، 'right' یا 'flush')؛ و آرگومان کلیدواژهای name نام ابزارک Tk را تنظیم میکند.
آیتمهای منو را با values جایگزین کنید. اگر default داده شده باشد، آن را بهعنوان مقدار فعلی variable نیز تنظیم کنید.
این ابزارک و منوی مرتبط با آن را نابود میکند.
تغییر یافته در نسخهی 3.14: پشتیبانی از آرگومان کلیدواژهای name افزوده شد.
ابزارک Ttk Panedwindow، تعدادی زیرپنجره را نمایش میدهد که بهصورت عمودی یا افقی روی هم چیده شدهاند. کاربر میتواند اندازههای نسبی زیرپنجرهها را با کشیدن نوار جداکننده (sash) بین پنجرهها تنظیم کند. این ابزارک، همتای تمدار tkinter.PanedWindow است و متدهای رایج ابزارک را از Widget و همچنین متدهای add() و panes() را از tkinter.PanedWindow به ارث میبرد.
یک بخش حاوی child را در موقعیت pos درج کنید. pos میتواند رشتهی 'end'، یک اندیس عدد صحیح، یا نام یک زیرپنجرهی مدیریتشده باشد. اگر child از قبل توسط پنجرهی چندقاب (paned window) مدیریت شده باشد، آن را به موقعیت مشخصشده منتقل کنید. هر آرگومان کلیدواژهای، گزینههای بخش را تنظیم میکند.
حذف child، که میتواند یک اندیس عدد صحیح یا نام یک زیرپنجرهی مدیریتشده باشد، از بخشها.
این متد، forget() موروثیِ مدیر چیدمان را میپوشاند؛ برای حذف خود ابزارک از مدیر آن، از pack_forget()، grid_forget() یا place_forget() استفاده کنید.
گزینههای pane مشخصشده را پرسوجو میکند یا تغییر میدهد؛ pane یا یک اندیس عدد صحیحی است یا نام یک زیرپنجرهی مدیریتشده. اگر هیچ آرگومانی داده نشود، یک دیکشنری از مقادیر گزینههای pane برمیگرداند. اگر option مشخص شده باشد، مقدار آن گزینه را برمیگرداند. در غیر این صورت، گزینههای دادهشده بهصورت آرگومانهای کلیدواژهای را روی مقادیر متناظرشان تنظیم میکند.
اگر newpos مشخص شده باشد، موقعیت نوار جداکننده با شمارهی index را تنظیم میکند و موقعیت جدید آن را برمیگرداند. این کار ممکن است موقعیت نوارهای جداکننده مجاور را تنظیم کند تا اطمینان حاصل شود که موقعیتها بهصورت یکنواخت افزایشی هستند؛ همچنین موقعیتها محدود شدهاند که بین ۰ و اندازهی کل ابزارک باشند. اگر newpos حذف شده باشد، موقعیت فعلی نوار جداکننده را برمیگرداند.
ابزارک Radiobutton در Ttk، بهعنوان بخشی از یک گروه برای کنترل یک متغیر مشترک واحد با انتخاب یکی از چند مقدار متقابلاً انحصاری استفاده میشود. این ابزارک همتای دارای تمِ tkinter.Radiobutton است و متدهای رایج ابزارک را از Widget به ارث میبرد.
متغیر گزینه را روی مقدار دکمه تنظیم کنید، دکمه را انتخاب کنید، فرمان مرتبط با دکمه را فراخوانی کنید و نتیجهی آن را برگردانید.
ابزارک Scale در Ttk، لغزندهای را نمایش میدهد که به کاربر امکان میدهد با حرکت لغزنده در طول یک شیار، یک مقدار عددی از یک محدوده را انتخاب کند. این ابزارک، همتای پوستهدار tkinter.Scale است و متدهای رایج ابزارک را از Widget به ارث میبرد.
تغییر یا پرسوجوی گزینههای ابزارک، مانند Widget.configure. علاوه بر این، این متد مقادیر from و to را محدود میکند تا مقدار فعلی در محدودهی تعریفشده توسط آنها باقی بماند.
تغییر یافته در نسخهی 3.9: اکنون مقدار پیکربندی را برمیگرداند، مانند Widget.configure.
مقدار فعلی مقیاس را برمیگرداند. اگر x و y داده شده باشند، در عوض مقدار متناظر با مختصات پیکسلی x، y را برمیگرداند.
ابزارک Scrollbar در Ttk، دریچه دید (viewport) یک ابزارک پیمایشپذیر مرتبط مانند Treeview، Entry یا tkinter.Text را کنترل میکند. این ابزارک، همتای پوستهدار tkinter.Scrollbar است و متدهای مشترک ابزارکها را از Widget و همچنین متدهای set() و get() را از tkinter.Scrollbar به ارث میبرد.
ابزارک Separator در Ttk، یک خط جداکننده افقی یا عمودی را نمایش میدهد. این ابزارک معادل مستقیمی در tkinter ندارد و متدهای رایج ابزارکها را از Widget به ارث میبرد.
ابزارک Sizegrip در Ttk، دستهای را نمایش میدهد که به کاربر اجازه میدهد با فشار دادن و کشیدن آن دسته، اندازهی پنجرهی سطح بالای حاوی آن را تغییر دهد؛ این دسته معمولاً در گوشهی پایین سمت راست قرار میگیرد. این ابزارک معادل مستقیمی در tkinter ندارد و متدهای رایج ابزارکها را از Widget به ارث میبرد.
یک Frame شامل یک Scale و یک Label است که مقدار فعلی مقیاس را نشان میدهد. variable همان IntVar است که مقیاس آن را پیگیری میکند (اگر داده نشود، یکی ایجاد میشود)، و from_ و to بازهی مقیاس را مشخص میکنند.
این ابزارک را نابود میکند و کالبک ردگیری (trace callback) ثبتشده روی متغیر مرتبط را حذف میکند.
نام مستعار Labelframe، که برای سازگاری نامگذاری با tkinter.LabelFrame نگه داشته شده است.
نام مستعاری از Panedwindow، که برای سازگاری نامگذاری با tkinter.PanedWindow حفظ شده است.