آموزش کلاس ProgressBar در PyGTK
![آموزش کلاس ProgressBar در PyGTK](https://www.sourcebaran.com/learn/wp-content/uploads/2021/10/040.jpg)
آموزش کلاس ProgressBar در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس ProgressBar در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون و جنگو
از نوارهای پیشرفت برای نشان دادن بصری یک فرآیند طولانی مدت به کاربر استفاده می شود. ویجت gtk.ProgressBar را می توان در دو حالت – حالت درصد و حالت فعالیت استفاده کرد.
هنگامی که امکان تخمین دقیق میزان کار در انتظار تکمیل وجود دارد، نوار پیشرفت را می توان در حالت درصد استفاده کرد و کاربر یک نوار افزایشی را مشاهده می کند که درصد انجام کار را نشان می دهد. اگر از طرف دیگر میزان کار موردنظر را می توان به طور دقیق تعیین کرد، نوار پیشرفت در حالت فعالیت استفاده می شود که در آن، نوار با نمایش یک بلوک در حال حرکت به جلو و عقب فعالیت را نشان می دهد.
سازنده زیر ویجت کلاس gtk.ProgressBar را راه اندازی می کند –
1 |
pb = gtk.ProgressBar() |
gtk.ProgressBar از روشهای زیر برای مدیریت عملکرد استفاده می کند –
- ()ProgressBar.pulse – این نوار پیشرفت را نشان می دهد تا نشان دهد که پیشرفتی صورت گرفته است، اما نمی دانید چقدر است. این روش همچنین حالت نوار پیشرفت را به “activity mode” تغییر می دهد، جایی که یک بلوک به عقب و جلو باز می گردد.
- ProgressBar.set_fraction – این امر باعث می شود که نوار پیشرفت قسمتی از نوار مشخص شده توسط کسر را پر کند. مقدار کسر باید بین 0.0 تا 1.0 باشد.
- ()ProgressBar.set_pulse_setup – این بخش (مشخص شده با کسر) طول کل نوار پیشرفت را تنظیم می کند تا بلوک برگشتی برای هر تماس را به روش ()pulse منتقل کند.
- ()ProgressBar.set_orientation – این جهت نوار پیشرفت را تعیین می کند. ممکن است روی یکی از ثابت های زیر تنظیم شود:
- gtk.PROGRESS_LEFT_TO_RIGHT
- gtk.PROGRESS_RIGHT_TO_LEFT
- gtk.PROGRESS_BOTTOM_TO_TOP
- gtk.PROGRESS_TOP_TO_BOTTOM
در برنامه زیر، ویجت gtk.ProgressBar در حالت فعالیت استفاده می شود. بنابراین، موقعیت اولیه پیشرفت با روش ()set_fraction بر روی 0.0 است.
1 2 3 |
self.pb = gtk.ProgressBar() self.pb.set_text("Progress") self.pb.set_fraction(0.0) |
به منظور افزایش پیشرفت 1 درصدی پس از 100 میلی ثانیه ، یک شی زمان سنج اعلام می شود و یک تابع callback تنظیم می شود که پس از هر 100 میلی ثانیه فراخوانی می شود تا نوار پیشرفت به روز شود.
1 |
self.timer = gobject.timeout_add (100, progress_timeout, self) |
در اینجا ، ()progress_timeout تابع callback است. پارامتر متد ()set_fraction را 1 درصد افزایش می دهد و متن موجود در نوار پیشرفت را به روز می کند تا درصد تکمیل را نشان دهد.
1 2 3 4 5 |
def progress_timeout(pbobj): new_val = pbobj.pb.get_fraction() + 0.01 pbobj.pb.set_fraction(new_val) pbobj.pb.set_text(str(new_val*100)+" % completed") return True |
مثال کلاس ProgressBar در PyGTK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import gtk, gobject def progress_timeout(pbobj): new_val = pbobj.pb.get_fraction() + 0.01 pbobj.pb.set_fraction(new_val) pbobj.pb.set_text(str(new_val*100)+" % completed") return True class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Progressbar demo") self.set_size_request(300,200) self.set_position(gtk.WIN_POS_CENTER) fix = gtk.Fixed() self.pb = gtk.ProgressBar() self.pb.set_text("Progress") self.pb.set_fraction(0.0) fix.put(self.pb,80,100) self.add(fix) self.timer = gobject.timeout_add (100, progress_timeout, self) self.connect("destroy", gtk.main_quit) self.show_all() PyApp() gtk.main() |
کد بالا خروجی زیر را تولید می کند –
برای استفاده از نوار پیشرفت در حالت فعالیت، تابع callback را به حالت زیر تغییر دهید و اجرا کنید –
1 2 3 |
def progress_timeout(pbobj): pbobj.pb.pulse() return True |
حرکت رفت و برگشت یک بلوک در داخل نوار پیشرفت، پیشرفت فعالیت را نشان می دهد.
لیست جلسات قبل آموزش PyGTK
- آموزش PyGTK
- معرفی PyGTK
- آموزش محیط PyGTK
- آموزش Hello World در PyGTK
- آموزش کلاس های مهم در PyGTK
- آموزش کلاس پنجره در PyGTK
- آموزش کلاس دکمه در PyGTK
- آموزش کلاس لیبل در PyGTK
- آموزش کلاس ورود در PyGTK
- آموزش مدیریت سیگنال در PyGTK
- آموزش مدیریت رویداد در PyGTK
- آموزش کانتینر در PyGTK
- آموزش کلاس جعبه در PyGTK
- آموزش کلاس ButtonBox در PyGTK
- آموزش کلاس تراز در PyGTK
- آموزش کلاس EventBox در PyGTK
- آموزش کلاس Layout در PyGTK
- آموزش کلاس ComboBox در PyGTK
- آموزش کلاس ToggleButton در PyGTK
- آموزش کلاس CheckButton در PyGTK
- آموزش کلاس RadioButton در PyGTK
- آموزش MenuBar ،Menu و MenuItem در PyGTK
- آموزش کلاس نوار ابزار در PyGTK
- آموزش کلاس Adjustment در PyGTK
- موزش کلاس Range در PyGTK
- آموزش کلاس Scale در PyGTK
- آموزش کلاس Scrollbar در PyGTK
- آموزش کلاس Dialog در PyGTK
- آموزش کلاس MessageDialog در PyGTK
- آموزش کلاس AboutDialog در PyGTK
- آموزش کلاس FontSelection در PyGTK
- آموزش کلاس Color Selection در PyGTK
- آموزش دیالوگ انتخاب فایل در PyGTK
- آموزش کلاس نوت بوک در PyGTK
- آموزش کلاس فریم در PyGTK
- آموزش کلاس AspectFrame در PyGTK
- آموزش کلاس TreeView در PyGTK
- آموزش کلاس Paned در PyGTK
- آموزش کلاس نوار وضعیت در PyGTK
دیدگاه شما