我编写了以下代码来解析文本文件,将其分解为标记并将这些标记插入到数据库中。我想使用进度条显示进程的当前状态,但以下代码无效。
我根据此How to connect pyqtSignal between classes in PyQT
编写了以下代码class YastGui(QtGui.QMainWindow):
incrementTokenSignal = QtCore.pyqtSignal(int)
...
def __init__(self):
self.incrementTokenSignal.connect(self.increment_token_count)
...
def increment_token_count(self, val):
msg = "{}/{}".format(val, self.total_db_records)
self.ui.records_processed_value_label.setText(msg)
class LogFile(object):
def __init__(self, file_path, YastGui_object):
super(LogFile, self).__init__()
# Gui object
self.gui = YastGui_object
self.total_db_records = 0
...
def tokenize(self):
for i, record in enumerate(myfile):
...
self.gui.incrementFilterSignal.emit(i + 1)
settings.session.commit()
根据这个PYQT and progress Bar during Long Process,我应该创建QThead来处理进度条,但我不知道如何做到这一点。 以下是整个Gui file和main file。
答案 0 :(得分:0)
我在Change the value of the progress bar from a class other than my GUI class PyQt4找到了问题的解决方案。
诀窍是将progressBar
对象作为参数传递给函数,然后在该函数中使用progressBar.setValue()
。