将图像从sqlite数据库显示到QTableView中的列

时间:2018-11-17 21:46:10

标签: c++ database qt qtableview qsqlquerymodel

我陷入了一个问题,即在SQLite数据库的照片列的每一行中显示图像

这是我的代码,在此先感谢:

admin.cpp

void Admin::on_pushButton_2_clicked()
{
    ui->stackedWidget->setCurrentIndex(2);
    QSqlQueryModel *modal = new QSqlQueryModel();
    this->model = new QSqlQueryModel();
    model->setQuery("select * from professeur");
      // qDebug()<<model->lastError();
        ui->tableView_prof->setModel(model);
}

1 个答案:

答案 0 :(得分:0)

我在这里解决了我的问题,代码

QVariant imageshow::data(const QModelIndex &item, int role) const
{
// Column for image
if (item.column() == 0)
{
    // avoid showing image as text
    if (role == Qt::DisplayRole || role == Qt::EditRole)
        return QVariant();
    //show the qpixmap in the colomun
    if (role == Qt::DecorationRole)
    {
        QVariant variant(QSqlQueryModel::data(item, Qt::DisplayRole));
        QByteArray bytes(variant.toByteArray());
        QPixmap pixmap;
        pixmap.loadFromData(bytes, "png");
        return pixmap;
    }
}
return QSqlQueryModel::data(item, role);
}