我已经为QTableWidget
:编码了这个
void ReadOnlyWindow::addReportIconToRow(const int rowIndex){
QIcon icon;
QSize sz(16, 16);
icon.addPixmap(style()->standardIcon(QStyle::SP_FileDialogEnd).pixmap(sz), QIcon::Normal);
QTableWidgetItem *iconItem = new QTableWidgetItem();
iconItem->setText("report");
iconItem->setIcon(icon);
iconItem->setFlags(iconItem->flags() & (~Qt::ItemIsEditable));
ui->homeWorksTable->setItem(rowIndex, REPORT_COLUMN_INDEX, icon);
}
REPORT_COLUMN_INDEX
是来自类的const int
,并且它具有值4
。
如果表是`QTableView`,我想知道如何重写代码。
我试着使用setItemData()
和setData()
,但我觉得我用得不好,因为它不起作用。
附言:现在我想为QTableView
做这件事,因为它很容易在那里加载SQLite表。这部分有效。我还增加了一个专栏。现在,我需要将带有文本的图标添加到该列的所有行中(在我的QTableWidget
代码中是如何添加的(。上面的函数应该用于一个单元格,并将在循环中实现。
要在表中添加图标,您可以像这里指定的那样设置项目:
并且在定义QTableWidgetItem
时使用采用要显示的Icon的构造函数。
这里有一个简短的例子:
this->ui->myTable->setItem(row, col, new QTableWidgetItem(QIcon(":/resources_to_icon_.png"),"SomeText"));
在您的代码中:
ui->homeWorksTable->setItem(rowIndex, REPORT_COLUMN_INDEX, QTableWidgetItem(icon,"some text");