📅  最后修改于: 2023-12-03 15:05:37.245000             🧑  作者: Mango
tqdm
hbox
错误tqdm
是一个 Python 的进度条库,可以方便地在循环中显示进度条,增加了代码的可读性和可维护性。
hbox
则是布局模块,用于在 PyQT 中进行横向布局。在使用 tqdm
和 PyQT
结合时,有时候可能会出现 hbox
错误。
通常的错误信息可能会是这个样子的:
Traceback (most recent call last):
File "example.py", line 8, in <module>
layout.addWidget(tqdm)
TypeError: addWidget(self, QWidget, int row=0, int column=0, Qt.Alignment alignment=0): argument 1 has unexpected type 'tqdm.std.tqdm'
错误的原因是 tqdm
的 __repr__
方法返回了 'tqdm(...)'
的格式,而 hbox
期望的是一个 QWidget
对象。
可以通过将 tqdm
转换为 QWidget
对象来解决这个问题。
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout
from tqdm import tqdm
app = QApplication([])
window = QWidget()
layout = QHBoxLayout(window)
# 创建一个 QMessageBox 作为 QWidget 对象,从而避免 hbox 错误
tqdm_widget = QWidget()
tqdm = tqdm(parent=tqdm_widget)
layout.addWidget(tqdm_widget)
window.show()
for i in tqdm(range(100)):
# do something
在使用 tqdm
和 PyQT
结合时,可能会出现 hbox
错误。此时,可以通过将 tqdm
转换为 QWidget
对象来解决此问题。