Qtableview - 鼠标悬停时如何显示图像?

时间:2013-09-29 16:38:40

标签: image qt tableview

我在我的一个Qt项目中有从SQL数据库读取的表视图。它包含名称列和存储某个图像路径的列。当我用鼠标悬停在某些图像路径上时,如何将图像显示为工具提示?我已经激活了鼠标跟踪,但我真的不知道如何使用它。如果可以请提供一些例子。比你提前很多。

1 个答案:

答案 0 :(得分:0)

视图的模型应响应Qt::TooltipRole并返回工具提示的内容。它可以包含HTML标记,包括显示图像的img标记:

class Model : public QAbstractTableModel {
public:
  //...
QVariant data(const QModelIndex &index, int role) const {
  if (role == Qt::ToolTipRole) {
    // find path for specified index
    return QString("<img src='%1'>").arg(path);
  }
  //...
}

如果您使用的是内置模型类,例如QSqlRelationalTableModel,则可以创建该类的子类并重新实现data函数。