QTreeView更新列编号
QTreeView update column number
我目前正在定制QAbstractItemModel
,遇到了一个问题。到目前为止,模型本身运行良好,但如果我尝试用QTreeView显示它,我会遇到问题。
模型本身可以根据其数据自行更改列编号。但是视图永远不会更新显示的列数,只会更新它们的内容。我确实超载了insertColumns
:
bool MyModel::insertColumns(int column, int count, const QModelIndex &parent)
{
bool success;
beginInsertColumns(parent, column, column + count - 1);
success = this->getItem(parent)->insertColumns(column, count);
endInsertColumns();
return success;
}
我做了一点实验,发现如果我每次重置和设置View,它将显示正确的列数:
connect(this->model, SIGNAL(columnsChanged()), this->ui->treeView, SLOT(reset()));
但必须有另一种方法来做到这一点。我正在寻找一个函数,它只会告诉View列计数已经更改。但我发现的唯一一个(QTreeView::columnCountChanged(int oldCount, int newCount)
)是受保护的。。。
这里还有一些其他信号,树视图的模式可以发出这些信号。如果你插入一列,这些信号都应该被触发,所以只需使用合适的列并连接到表视图上进行更新,尽管我认为如果你更改底层模型,视图应该更新,如果它没有重置模型
ui->treeView->model()->layoutChanged();
ui->treeView->model()->dataChanged();
ui->treeView->model()->columnsInserted();
ui->treeView->model()->columnsMoved();
相关文章:
- 从C++本机插件更新Vector3数组
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- cmake更新缓存的变量
- 更新到莫哈韦后出现cmath错误
- OpenMP:并行更新数组总是需要减少数组吗
- 为什么我的变量没有更新,我的 LED 没有亮起?
- 指针没有更新它在void函数内部指向的值
- 如何在c++中获取要更新的值
- 已修改的LinkedList未在文本文件本身中更新
- Qt:当QListView获得新条目时,如何更新QStringList
- 更新的矢量元素不打印
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 如何在ECS框架中更新组件数据和通知系统
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- 如果我想在没有更新编译器的情况下使用新功能,该怎么办?
- 如何在数组中找到最小编号的索引号?
- 如何在 C++11 中查找和更新向量中的一个嵌套结构
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- QTreeView更新列编号
- DELETE查询后更新自动编号字段