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

آموزش پایتون - اسکرول‌بار

این ویجت یک کنترل‌کننده پیمایش ارائه می‌دهد که برای پیاده‌سازی ویجت‌های عمودی با اسکرول، مانند Listbox، Text و Canvas، استفاده می‌شود. توجه داشته باشید که همچنین می‌توانید اسکرول‌بارهای افقی روی ویجت‌های Entry نیز ایجاد کنید.

نحوه استفاده

در ادامه، نحو نوشتار برای ایجاد این ویجت آمده است −

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

پارامترها

  • master − این نماینده پنجره والد را نشان می‌دهد.

  • options − در اینجا لیستی از گزینه‌های معمول استفاده شده برای این ویجت آورده شده است. 

ردیف گزینه و توضیحات
1

activebackground

رنگ اسلایدر و نشانگرها هنگامی که موس روی آن‌ها قرار دارد.

2

bg

رنگ اسلایدر و نشانگرها هنگامی که موس روی آن‌ها نیست.

3

bd

عرض مرزهای سه بعدی اطراف مجموعه‌ای از گوشه‌ها و همچنین عرض اثرات سه بعدی روی نشانگرها و اسلایدر. مقدار پیش‌فرض بدون مرز حول مجموعه است و 2 پیکسل مرز حول نشانگرها و اسلایدر است.

4

command

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

5

cursor

نشانگری که زمانی که موس روی اسکرول‌بار قرار دارد، نمایش داده می‌شود.

6

elementborderwidth

عرض مرزها حول نشانگرها و اسلایدر. مقدار پیش‌فرض elementborderwidth=-1 است که به این معنی است که از مقدار گزینه borderwidth استفاده شود.

7

highlightbackground

رنگ برجسته‌سازی فوکوس هنگامی که اسکرول‌بار فوکوس ندارد.

8

highlightcolor

رنگ برجسته‌سازی فوکوس هنگامی که اسکرول‌بار فوکوس دارد.

9

highlightthickness

ضخامت برجسته‌سازی فوکوس. مقدار پیش‌فرض 1 است. اگر بخواهید نمایش برجسته‌سازی فوکوس را کنترل کنید، آن را به 0 تنظیم کنید.

10

jump

این گزینه کنترل می‌کند که وقتی کاربر اسلایدر را کشیده، چه اتفاقی بیفتد. به طور معمول (jump=0)، هر کشیدن کوچک از اسلایدر باعث فراخوانی تابع فراخوانی‌کننده می‌شود. اگر این گزینه را به 1 تنظیم کنید، فراخوانی‌کننده‌ای صورت نمی‌گیرد تا زمانی که کاربر دکمه موس را آزاد کند.

11

orient

orient=HORIZONTAL را برای اسکرول‌بار افقی و orient=VERTICAL را برای اسکرول‌بار عمودی تنظیم کنید.

12

repeatdelay

این گزینه کنترل می‌کند که برای حرکت تکراری اسلایدر به آن سمت، دکمه 1 چه مدت نگه‌داشته شود. مقدار پیش‌فرض repeatdelay=300 است و واحد آن میلی‌ثانیه است.

13

repeatinterval

دوره تکرار را مشخص می کند

14

takefocus

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

15

troughcolor

رنگ مجموعه.

16

width

عرض اسکرول‌بار (بعد y آن اگر افقی و بعد x آن اگر عمودی باشد). مقدار پیش‌فرض 16 است.

متدها

اسکرول‌بار ها دارای این روش‌ها هستند −

ردیف روش و توضیحات
1

get()

دو عدد (a، b) را برمی‌گرداند که موقعیت کنونی اسلایدر را توصیف می‌کنند. مقدار a موقعیت لبه چپ یا بالا اسلایدر را برای اسکرول‌بار‌های افقی و عمودی به ترتیب مشخص می‌کند؛ مقدار b موقعیت لبه راست یا پایین را مشخص می‌کند.

2

set ( first, last )

برای اتصال اسکرول‌بار به یک ویجت دیگر w، دستور xscrollcommand یا yscrollcommand w را به متد set() اسکرول‌بار تنظیم کنید. آرگومان‌ها به همان معنی مقادیر برگشتی از متد get() هستند.

مثال

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

from tkinter import *

root = Tk()
scrollbar = Scrollbar(root)
scrollbar.pack( side = RIGHT, fill = Y )

mylist = Listbox(root, yscrollcommand = scrollbar.set )
for line in range(100):
   mylist.insert(END, "This is line number " + str(line))

mylist.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = mylist.yview )

mainloop()

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

اسکرول‌بار TK