如何解决计算QProgressBar函数完成的百分比,作为在文件夹中处理的文件的百分比
我目前有一个PyQt QProgressBar设置,一旦函数完成处理,它就会简单地跳到100%。我正在研究如何计算过程完成率,以反映在进度条中以在过程运行时更新用户。这是关于进度条的当前代码:
class Thread(QThread):
update_signal = pyqtSignal(int)
def __init__(self,*args,**kwargs):
super(Thread,self).__init__(*args,**kwargs)
self.count = 0
self.running = True
def run(self):
while self.running and self.count < 100:
self.count += 1
self.update_signal.emit(self.count)
QThread.msleep(100)
def stop(self):
self.running = False
class ycsapplication(QMainWindow,ycsapplication_ui.Ui_MainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.ycsslctharvbtn.clicked.connect(self.selectharvestfolder)
self.ycsslctbndbtn.clicked.connect(self.selectboundaryfolder)
self.ycsexecutebtn.clicked.connect(self.run_ycs)
self.ycsprogressBar.setMaximum(100)
self.thread = Thread()
self.thread.update_signal.connect(self.update)
def selectharvestfolder(self):
self.harvfile = str(QFileDialog.getExistingDirectory(self,"Select Folder Containing Raw Harvest Files"))
self.ycsharvpathtextEdit.setText(self.harvfile)
def selectboundaryfolder(self):
self.bndfile = str(QFileDialog.getExistingDirectory(self,"Select Folder Containing Boundary Files"))
self.ycsbndpathtextEdit.setText(self.bndfile)
def update(self,val):
self.ycsprogressBar.setValue(val)
if val == 100: self.on_stop()
def on_stop(self):
self.thread.stop()
def run_ycs(self):
self.ycsprogressBar.setValue(0)
self.thread.running = True
self.thread.count = 0
self.thread.start()
#from here on is where the function code exists to run on the execute button selection
在脚本中,我继续获取所选文件夹的文件列表:
fileList = glob.glob(folder+"\\*.shp")
是否可以将进度条的百分比值更新为已处理文件占文件列表长度的百分比?
这是一个新事物,尽管我能够找到如何设置进度条,但我一直在努力计算百分比值以更新流程的用户。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。