¿Cómo incluir una columna de barras de progreso dentro de QTableView en PyQt5?
Empecé a crear un complemento en QGIS 3 y mi complemento requiere barras de progreso dentro de un QTableView. Estoy tratando de descubrir cómo agregar una columna de barras de progreso dentro de mi QTableView en PyQt5. Pero no pude encontrar ningún código o recurso relevante con respecto a mi problema. Por favor, ayúdame en esto.
Mi mes
w= self.tasklist_tabv
delegate = ProgressDelegate(w)
w.setItemDelegateForColumn(2, delegate)
w.setHorizontalHeaderLabels(["ID", "Name", "Progress"])
for r, (_id, _name, _progress) in enumerate(data):
it_id = QtGui.QTableWidgetItem(_id)
it_name = QtGui.QTableWidgetItem(_name)
it_progress = QtGui.QTableWidgetItem()
chkBoxItem = QtGui.QTableWidgetItem()
chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
chkBoxItem.setCheckState(QtCore.Qt.Unchecked)
it_progress.setData(QtCore.Qt.DisplayRole+1000, _progress)
w.insertRow(w.rowCount())
for c, item in enumerate((it_id, it_name, it_progress)):
w.setItem(r, c, item)
for c, item in enumerate((it_id, it_name, chkBoxItem)):
w.setItem(r, c+1, item)
class ProgressDelegate(QtGui.QStyledItemDelegate):
def paint(self, painter, option, index):
progress = index.data(QtCore.Qt.DisplayRole+1000)
opt = QtGui.QStyleOptionProgressBar()
opt.rect = option.rect
opt.minimum = 0
opt.maximum = 100
opt.progress = progress
opt.text = "{}%".format(progress)
opt.textVisible = True
QtGui.QApplication.style().drawControl(QtGui.QStyle.CE_ProgressBar, opt, painter)