我有QTableView
,显示包含许多列的模型。
该模型包含vector<my_item_with_lots_of_fields>
之类的内容;对于大多数应用程序,vector
的大小低于5.
出于审美原因,模型看起来会更好,因此每个条目都会从上到下运行。
一个肮脏的解决方案是更改模型,以便切换行和列索引。不幸的是,这会破坏访问该模型的其他小部件。
在不改变基础模型的情况下,是否有一些简单,典范的方法来实现这种效果?也许要改变小部件?
答案 0 :(得分:1)
我认为一种方法是为此创建代理模型。然后,您需要进行两项更改:
QVariant MyProxyModel::data(const QModelIndex & index,
int role = Qt::DisplayRole) const
{
return myTableModel::data(QModelIndex(index.column(), index.row()), role);
}
QVariant MyProxyModel::headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const
{
return myTableModel::headerData(section,
orientation == Qt::Horizontal ? Qt::Vertical : Qt::Horizontal, role);
}