gpt4 book ai didi

python - qtablewidget 的 pyqt 自定义项目委托(delegate)

转载 作者:行者123 更新时间:2023-12-01 06:18:18 28 4
gpt4 key购买 nike

我有一个包含 5 列的 QTableWidget,如何将第 2 列上的所有项目设置为 QProgressBar?

我尝试过类似的方法:

self.downloads_table = QtGui.QTableWidget(0, 5)
self.downloads_table.setItemDelegateForColumn(2, DownloadDelegate(self))

DownloadDelegate 所在位置:

class DownloadDelegate(QItemDelegate):

def __init__(self, parent=None):
super(DownloadDelegate, self).__init__(parent)

def createEditor(self, parent, option, index):
return QProgressBar(parent)

但是进度条根本不显示。有什么想法吗?

最佳答案

正如马可尼所说,

QTableWidget.setCellWidget(row, column, QWidget) 

将 QWidget 添加到(行、列)处的单元格中,并将 QTableWidget 作为父级。

例如沿着这些思路:

table = QTableWidget(1, 3)
item1 = QTableWidgetItem("foo")
comboBox = QComboBox()
checkBox = QCheckBox()
table.setItem(0,0,item1)
table.setCellWidget(0,1,comboBox)
table.setCellWidget(0,2,checkBox)

将为您提供一个 1x3 表格,其中 cell 0,0 中包含“foo”,QComboBox 位于 cell 0,1 中单元格 0,2 中的 QCheckBox

关于python - qtablewidget 的 pyqt 自定义项目委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032682/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com