将QIcon添加到QTableView单元格



我已经为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");

最新更新