C++ 在QTableView中将文本设置在图标下方而不是右侧?

C++ 在QTableView中将文本设置在图标下方而不是右侧?,c++,qt,qtableview,C++,Qt,Qtableview,我将图像作为项目添加到QTableView,我还将特定文本添加到每个图像,问题是文本显示在图像或图标旁边,但我希望QTableView将其显示在图像或图标下面。我的代码片段如下所示: QStandardItemModel * model = new QStandardItemModel(NumOfRow, 3, this); 然后是循环中的这个部分 // QStandardItem * itm = new QStandardItem; itm->setIcon(imag

我将图像作为项目添加到QTableView,我还将特定文本添加到每个图像,问题是文本显示在图像或图标旁边,但我希望QTableView将其显示在图像或图标下面。我的代码片段如下所示:

QStandardItemModel * model = new QStandardItemModel(NumOfRow, 3, this);
然后是循环中的这个部分

//

    QStandardItem * itm = new QStandardItem;
    itm->setIcon(image);
    itm->setText(text);
    model->setItem(row, column, itm);
//
那么这部分在循环之外

ui->listOfImages->setModel(model);
ui->listOfImages->setStyleSheet(QString("icon-size: 150px 150px"));
ui->listOfImages->verticalHeader()->setVisible(false);
ui->listOfImages->horizontalHeader()->setVisible(false);
for(int i=0; i<=rowPointer; i++)
{
    ui->listOfImages->setRowHeight(i,150);
}
for(int j=0; j<3; j++)
{
    ui->listOfImages->setColumnWidth(j,150);
}
ui->listOfImages->setModel(model);
ui->listOfImages->setStyleSheet(QString(“图标大小:150px 150px”);
ui->listOfImages->verticalHeader()->setVisible(false);
ui->listOfImages->horizontalHeader()->setVisible(false);
对于(inti=0;图像->设置行高(i,150);
}
对于(intj=0;jlistOfImages->setColumnWidth(j,150);
}
你能告诉我有没有办法把名字放在图标下面而不是图标的右边


谢谢

好的,我将尝试使用自定义的
QStandardItemModel
子类处理文本对齐。下面是实现它的示例模型:

class ItemModel : public QStandardItemModel
{
public:
    ItemModel(int rows, int columns, QObject *parent = 0)
        :
            QStandardItemModel(rows, columns, parent)
    {}

    QVariant data(const QModelIndex &index, int role) const
    {
        if (role == Qt::TextAlignmentRole) {
            return Qt::AlignBottom; // <- Make alignment look different, i.e.
                                    // <- text at the bottom.
        } else {
            return QStandardItemModel::data(index, role);
        }
    }
};

其余部分将保持不变。

不幸的是,所有更改的内容现在都显示在角落中的文本,我认为我们实际上需要使用该项目的自定义类更改该项目。当我看到图标时,很明显图标的图像与其文本在一个单独的框中,我需要如何将文本框放在图标下。如果你看不到,该怎么办您是否希望对QListWidget执行相同的操作?
QStandardItemModel * model = new ItemModel(NumOfRow, 3, this);