PyQt4的进度条

时间:2017-02-28 07:56:13

标签: python pyqt pyqt4

我编写了以下代码来解析文本文件,将其分解为标记并将这些标记插入到数据库中。我想使用进度条显示进程的当前状态,但以下代码无效。

我根据此How to connect pyqtSignal between classes in PyQT

编写了以下代码

yast_gui.py

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)

yast.py

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 filemain file

1 个答案:

答案 0 :(得分:0)

我在Change the value of the progress bar from a class other than my GUI class PyQt4找到了问题的解决方案。

诀窍是将progressBar对象作为参数传递给函数,然后在该函数中使用progressBar.setValue()