C++ 在QTableView中将文本设置在图标下方而不是右侧?
我将图像作为项目添加到QTableView,我还将特定文本添加到每个图像,问题是文本显示在图像或图标旁边,但我希望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
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);