Qt:当QListView获得新条目时,如何更新QStringList
Qt: How to update QStringList when QListView gets new entries
我有一个QListView _listView
,它的型号是QStringListModel _model
,它的QStringList
是_locations
。这是代码:
_locations << "Sarajevo" << "Tesanj" << "Graz";
_model = new QStringListModel(this);
_model->setStringList(_locations);
_listView = new QListView(this);
_listView->setModel(_model);
_listView->setEditTriggers(
QAbstractItemView::EditTrigger::DoubleClicked |
QAbstractItemView::EditTrigger::AnyKeyPressed);
以及编辑_listView
:的插槽
void Dialog_EditLocations::onKey_del()
{
QModelIndex _index;
_index = _listView->currentIndex();
_model->removeRow(_index.row());
}
void Dialog_EditLocations::onClick_add()
{
if (_edAddLocation->text() == "") return;
int row = _model->rowCount();
_model->insertRow(row);
QModelIndex _index;
_index = _model->index(row);
_model->setData(_index, _edAddLocation->text());
_edAddLocation->clear();
}
在列表视图小部件中编辑列表后,我想将其存储在一个文件中。当我存储_locations时,它会保存代码第一行的原始列表,即使我添加了新项目。
每当我在_listView
中创建新条目时,如何使代码更新_locations
,或者至少如何获取在_listView
中可见的列表?
使用QStringListModel::stringList()
,它从模型中返回所有当前项,即您在listview小部件中看到的项,包括任何修改(添加、删除行(。
在onClick_add
插槽的末尾,您可以添加:
_locations = _model->stringList();
相关文章:
- 从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)按下键时,播放器构造函数未使用正确的动画进行更新
- 在 emscripten 网页汇编正在运行期间更新进度条?
- 在运行时使用范围更新结果
- 用非原子更新原子变量,反之亦然