gpt4 book ai didi

qt - 显示 QAbstractTableModel 中的图像

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

我正在尝试显示来自 QAbstractTableModel 的图像。我尝试返回一个QPixmap作为data()QVariant,但它只产生空单元格,而我期望第二个单元格中的每个单元格列有一个 20x20 黑色方 block 。

这是我当前的代码:

QVariant MySqlTableModel::data(const QModelIndex &idx, int role = Qt::DisplayRole) const
{
if (role == Qt::DisplayRole && idx.column() == 1) {
QPixmap pixmap(20,20);
QColor black(0,0,0);
pixmap.fill(black);
return pixmap;
}

return QSqlTableModel::data(idx, role);
}

最佳答案

只有可以转换为字符串的 QVariant 才能通过标准委托(delegate)为角色 Qt::DisplayRole 返回。

您可以通过为角色 Qt::DecorationRole 返回图像来显示图像

QVariant MySqlTableModel::data(const QModelIndex &idx, int role = Qt::DisplayRole) const
{
if (idx.column() == 1) {
if (role == Qt::DecorationRole) {
QPixmap pixmap(20,20);
QColor black(0,0,0);
pixmap.fill(black);
return pixmap;
} else if (role == Qt::DisplayRole) {
// For Qt::DisplayRole return an empty string, otherwise
// you will have *both* text and image displayed.
return "";
}
}

return QSqlTableModel::data(idx, role);
}

或者编写您自己的委托(delegate)来自己进行绘画。请参阅QStyledItemDelegate documentation了解更多详情。

关于qt - 显示 QAbstractTableModel 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988182/

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