0

我已经对此进行了编码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_INDEXconst int来自类,它具有价值4

如果表是“QTableView”,我正在尝试找出如何重写代码。

我正在尝试使用setItemData()setData()但我认为我以不好的方式使用它,因为它不起作用。

PS:现在我想这样做是QTableView因为它很容易在那里加载 SQLite 表。这部分有效。我还添加了一个专栏。现在我需要在此列图标的所有行中添加文本(在我的代码中如何QTableWidget)。上面的功能应该是一个单元格,并且将在循环中实现。

4

1 回答 1

0

要将图标添加到 tableWidget,您可以设置此处指定的项目:

并且在定义 时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");
于 2020-07-10T06:26:38.233 回答