【问题标题】:Progress bar with PyQt4PyQt4 的进度条
【发布时间】:2017-02-28 17:01:14
【问题描述】:

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

我根据这个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,我应该创建 QTheads 来处理进度条,但我不知道该怎么做。 这是整个Gui filemain file

【问题讨论】:

  • 您可以提供手册来测试程序并帮助您
  • 您可以提供由 gui 导入的文件的示例。
  • @eyllanesc 你可以在这里找到代码github.com/jarifibrahim/YAST。由于项目仍在进行中,您可能无法理解代码。要运行它,请尝试python3 yast_gui.py
  • 当然,我已经执行过了,但是它要求我传递一个文件,传递它任何文件都会给我一个错误。
  • @eyllanesc 输入文件是一个通用日志格式的 Apache Web 服务器日志文件。

标签: python pyqt pyqt4


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多