我有一个QTableView
显示有很多列的模型。
该模型包含类似的东西vector<my_item_with_lots_of_fields>
;对于大多数应用程序,大小vector
小于 5。
出于美学原因,模型看起来会更好地翻转,以便每个条目从上到下运行。
一种肮脏的解决方案是更改模型,以便切换行和列索引。不幸的是,这会破坏访问模型的其他小部件。
是否有一些简单的、典型的方法可以在不改变底层模型的情况下实现这种效果?也许要更改小部件?
我有一个QTableView
显示有很多列的模型。
该模型包含类似的东西vector<my_item_with_lots_of_fields>
;对于大多数应用程序,大小vector
小于 5。
出于美学原因,模型看起来会更好地翻转,以便每个条目从上到下运行。
一种肮脏的解决方案是更改模型,以便切换行和列索引。不幸的是,这会破坏访问模型的其他小部件。
是否有一些简单的、典型的方法可以在不改变底层模型的情况下实现这种效果?也许要更改小部件?
我认为一种方法是为此创建一个代理模型。然后,您需要进行两项更改:
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);
}