我有一个包含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)
但进度条根本没有出现。有什么想法吗?
答案 0 :(得分:1)
正如马可尼所说,
QTableWidget.setCellWidget(row, column, QWidget)
在(行,列)的单元格中添加一个QWidget,并将QTableWidget作为父级。
e.g。这些方面的东西:
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
,在QCheckBox
中为cell 0,2
。
答案 1 :(得分:0)
模型必须在itemEditable
flags()