Javada bu tarz işlemleri yaparkene mecburen thread kullanıyorduk. Bir süredir Python'la ugrasıyordum. Geçenlerde arkadaşın Github reposundan forkladığım, komut satırında çalışan dosya indirmeye yarayan Python ile yazılmış uygulamaya bi ayar çekeyim dedim. Forklayıp ayrı bir python dosyası şeklinde arayüzlü versiyonu ekledim.
Kullandığım componentlerden biride Progressbar idi. Malum dosyanın yüzde kaçının indiğini kullanıcıya göstermek lazım. Az araştırdım genelde progressbar ile ilgili iş yapanlar ya thread yada timer kullanıyordu.
Sonrasında şu büyülü satırı buldum. Ne thread ne başka birşeye gerek kalmadan tek satırla işimizi şu şekilde halledebiliriz.
QtCore.QCoreApplication.processEvents()
Bunu şu şekilde kodda kullandım ve anlık olarak arayüzde label'ı birde progressbar'ın değerlerini değiştirmek mümkün oldu. Easy.
QtCore.QCoreApplication.processEvents()
self.speed.setText(u"Toplam\nİndirilen %.1f Kb" % (float(ind)/(1024)))
self.progressBar.setValue(yuzde)
Kodun bu kısmı inen yüzdelik kısmı toplam Kb'ı ekrana anlık aktarmaya yarıyor.
Hiç yorum yok:
Yorum Gönder