شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - Menubutton

یک منو دکمه‌ای (Menubutton) بخشی از یک منوی کشویی است که همیشه روی صفحه نمایش باقی می‌ماند. هر منو دکمه‌ای با یک ویجت منو (Menu) مرتبط است که می‌تواند گزینه‌ها را برای آن منو دکمه نمایش دهد هنگامی که کاربر بر روی آن کلیک می‌کند.

سینتکس:

w = Menubutton ( master, option, ... )

پارامترها

  • master − این نمایانگر پنجره والد (parent window) است.

  • options − اینجا لیستی از گزینه‌های معمولاً استفاده شده برای این ویجت وجود دارد. این گزینه‌ها می‌توانند به صورت جفت‌های کلید باشند و مقدار به وسیلهٔ کاماها  از هم جدا میشوند.

شماره گزینه و توضیحات
1

activebackground

رنگ پس‌زمینه هنگامی که موس روی منو دکمه (menubutton) قرار دارد.

2

activeforeground

رنگ پیش‌زمینه هنگامی که موس روی منو دکمه (menubutton) قرار دارد.

3

anchor

این گزینه کنترل می‌کند که متن چگونه قرار گیری کند اگر اندازهٔ ویجت بیشتر از نیاز متن باشد. پیش‌فرض anchor=CENTER است که متن را در مرکز قرار می‌دهد.

4

bg

رنگ پس‌زمینهٔ نرمال نمایش داده شده پشت برچسب و نشانگر.

5

bitmap

برای نمایش یک تصویر (bitmap) بر روی منو دکمه (menubutton)، این گزینه را به نام یک تصویر بسته‌بندی شده (bitmap name) تنظیم کنید.

6

bd

اندازهٔ حاشیهٔ اطراف نشانگر. پیش‌فرض 2 پیکسل است.

7

cursor

نشانگری که ظاهر می‌شود هنگامی که موس روی این منو دکمه (menubutton) قرار دارد.

8

direction

برای نمایش منو به سمت چپ دکمه از direction=LEFT استفاده کنید؛ برای نمایش منو به سمت راست دکمه از direction=RIGHT استفاده کنید؛ یا از direction='above' برای قرار دادن منو بالای دکمه استفاده کنید.

9

disabledforeground

رنگ پیش‌زمینه نشان داده شده بر روی این منو دکمه (menubutton) هنگامی که غیرفعال است.

10

fg

رنگ پیش‌زمینه هنگامی که موس روی منو دکمه (menubutton) نیست.

11

height

ارتفاع منو دکمه (menubutton) به تعداد خطوط متن (نه پیکسل!). پیش‌فرض این است که اندازهٔ منو دکمه (menubutton) را بر اساس محتویات آن تنظیم می شود.

12

highlightcolor

رنگ نمایش داده شده در تاکید فوکوس هنگامی که ویجت دارای فوکوس است.

13

image

برای نمایش یک تصویر بر روی این منو دکمه (menubutton)،

14

justify

این گزینه کنترل می‌کند متن چگونه قرار گیری کند هنگامی که متن محتویات منو دکمه (menubutton) را پر نمی‌کند: از justify=LEFT برای چپ چین کردن متن (این پیش‌فرض است)؛ از justify=CENTER برای مرکز‌چین کردن آن، یا از justify=RIGHT برای راست‌چین کردن.

15

menu

برای ارتباط منو دکمه (menubutton) با مجموعه‌ای از گزینه‌ها، این گزینه را به شیء منو (Menu) حاوی این گزینه‌ها تنظیم کنید. این شیء منو (menu object) باید با ارسال منو دکمه مربوطه به سازنده‌اش به عنوان آرگومان اول ایجاد شده باشد.

16

padx

فاصله بین متن منو دکمه (menubutton) به سمت چپ و راست. پیش‌فرض 1 است.

17

pady

فاصله بین متن منو دکمه (menubutton) به سمت بالا و پایین. پیش‌فرض 1 است.

18

relief

از سایه‌دهی مرزهای سه‌بعدی استفاده می‌کند. پیش‌فرض RAISED است.

19

state

به طور معمول، منو دکمه‌ها به وقوع پیوسته به موس پاسخ می‌دهند. برای خاکستری کردن منو دکمه و جلوگیری از واکنش به آن، از state=DISABLED استفاده کنید.

20

text

برای نمایش متن بر روی منو دکمه (menubutton)، این گزینه را به رشته‌ای حاوی متن موردنظر تنظیم کنید. خط‌های جدید ("n\") درون رشته باعث شکستن خط می‌شوند.

21

textvariable

می‌توانید یک متغیر کنترل (control variable) از کلاس StringVar با این منو دکمه (menubutton) مرتبط کنید. تنظیم این متغیر کنترل، متن نمایش داده‌شده را تغییر می‌دهد.

22

underline

به طور معمول، زیرخطی زیر متن منو دکمه (menubutton) نمایش داده نمی‌شود. برای زیرخط کشیدن یکی از حروف، این گزینه را به شاخص آن حرف تنظیم کنید.

23

width

عرض ویجت به تعداد کاراکترها. پیش‌فرض 20 است.

24

wraplength

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

مثال

با خودتان مثال زیر را امتحان کنید −

from tkinter import *

top = Tk()

mb=  Menubutton ( top, text="condiments", relief=RAISED )
mb.grid()
mb.menu =  Menu ( mb, tearoff = 0 )
mb["menu"] =  mb.menu

mayoVar = IntVar()
ketchVar = IntVar()

mb.menu.add_checkbutton ( label="mayo",
                          variable=mayoVar )
mb.menu.add_checkbutton ( label="ketchup",
                          variable=ketchVar )

mb.pack()
top.mainloop()

زمانی که کد بالا اجرا می‌شود، نتیجهٔ زیر تولید می‌شود −

TK Menubutton