【发布时间】:2017-02-28 17:01:14
【问题描述】:
我编写了以下代码来解析文本文件,将其分解为标记并将这些标记插入数据库。我想使用进度条显示进程的当前状态,但以下代码不起作用。
我根据这个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,我应该创建 QTheads 来处理进度条,但我不知道该怎么做。 这是整个Gui file 和main file。
【问题讨论】:
-
您可以提供手册来测试程序并帮助您
-
您可以提供由 gui 导入的文件的示例。
-
@eyllanesc 你可以在这里找到代码github.com/jarifibrahim/YAST。由于项目仍在进行中,您可能无法理解代码。要运行它,请尝试
python3 yast_gui.py -
当然,我已经执行过了,但是它要求我传递一个文件,传递它任何文件都会给我一个错误。
-
@eyllanesc 输入文件是一个通用日志格式的 Apache Web 服务器日志文件。