آموزش کلاس ProgressBar در PyGTK

3 سال پیش
آموزش کلاس ProgressBar در PyGTK

آموزش کلاس ProgressBar در PyGTK

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس ProgressBar در PyGTK خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون و جنگو

از نوارهای پیشرفت برای نشان دادن بصری یک فرآیند طولانی مدت به کاربر استفاده می شود. ویجت gtk.ProgressBar را می توان در دو حالت – حالت درصد و حالت فعالیت استفاده کرد.

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

سازنده زیر ویجت کلاس gtk.ProgressBar را راه اندازی می کند –

pb = gtk.ProgressBar()

 

gtk.ProgressBar از روشهای زیر برای مدیریت عملکرد استفاده می کند –

  • ()ProgressBar.pulse  – این نوار پیشرفت را نشان می دهد تا نشان دهد که پیشرفتی صورت گرفته است، اما نمی دانید چقدر است. این روش همچنین حالت نوار پیشرفت را به “activity mode” تغییر می دهد، جایی که یک بلوک به عقب و جلو باز می گردد.
  • ProgressBar.set_fraction – این امر باعث می شود که نوار پیشرفت قسمتی از نوار مشخص شده توسط کسر را پر کند. مقدار کسر باید بین ۰٫۰ تا ۱٫۰ باشد.
  • ()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  بر روی ۰٫۰ است.

self.pb = gtk.ProgressBar()
self.pb.set_text("Progress")
self.pb.set_fraction(0.0)

 

به منظور افزایش پیشرفت ۱ درصدی پس از ۱۰۰ میلی ثانیه ، یک شی زمان سنج اعلام می شود و یک تابع callback تنظیم می شود که پس از هر ۱۰۰ میلی ثانیه فراخوانی می شود تا نوار پیشرفت به روز شود.

self.timer = gobject.timeout_add (100, progress_timeout, self)

 

در اینجا ، ()progress_timeout  تابع callback است. پارامتر متد ()set_fraction  را ۱ درصد افزایش می دهد و متن موجود در نوار پیشرفت را به روز می کند تا درصد تکمیل را نشان دهد.

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

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()

 

کد بالا خروجی زیر را تولید می کند –

ProgressBar Demo

برای استفاده از نوار پیشرفت در حالت فعالیت، تابع callback را به حالت زیر تغییر دهید و اجرا کنید –

def progress_timeout(pbobj):
   pbobj.pb.pulse()
   return True

 

حرکت رفت و برگشت یک بلوک در داخل نوار پیشرفت، پیشرفت فعالیت را نشان می دهد.

ProgressBar Demo

 

منبع.

 

 

لیست جلسات قبل آموزش PyGTK

  1. آموزش PyGTK
  2. معرفی PyGTK
  3. آموزش محیط  PyGTK
  4. آموزش Hello World در  PyGTK
  5. آموزش کلاس های مهم در  PyGTK
  6. آموزش کلاس پنجره در PyGTK
  7. آموزش کلاس دکمه در PyGTK
  8. آموزش کلاس لیبل در PyGTK
  9. آموزش کلاس ورود در PyGTK
  10. آموزش مدیریت سیگنال در PyGTK
  11. آموزش مدیریت رویداد در PyGTK
  12. آموزش کانتینر در PyGTK
  13. آموزش کلاس جعبه در PyGTK
  14. آموزش کلاس ButtonBox در PyGTK
  15. آموزش کلاس تراز در PyGTK
  16. آموزش کلاس EventBox در PyGTK
  17. آموزش کلاس Layout در PyGTK
  18. آموزش کلاس ComboBox در PyGTK
  19. آموزش کلاس ToggleButton در PyGTK
  20. آموزش کلاس CheckButton در PyGTK
  21. آموزش کلاس RadioButton در PyGTK
  22. آموزش MenuBar ،Menu و MenuItem در PyGTK
  23. آموزش کلاس نوار ابزار در PyGTK
  24. آموزش کلاس Adjustment در PyGTK
  25. موزش کلاس Range در PyGTK
  26. آموزش کلاس Scale در PyGTK
  27. آموزش کلاس Scrollbar در PyGTK
  28. آموزش کلاس Dialog در PyGTK
  29. آموزش کلاس MessageDialog در PyGTK
  30. آموزش کلاس AboutDialog در PyGTK
  31. آموزش کلاس FontSelection در PyGTK
  32. آموزش کلاس Color Selection در PyGTK
  33. آموزش دیالوگ انتخاب فایل در PyGTK
  34. آموزش کلاس نوت بوک در PyGTK
  35. آموزش کلاس فریم در PyGTK
  36. آموزش کلاس AspectFrame در PyGTK
  37. آموزش کلاس TreeView در PyGTK
  38. آموزش کلاس Paned در PyGTK
  39. آموزش کلاس نوار وضعیت در PyGTK
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه