QStandardItemModel插入数据的问题
我使用了QStandardItemModel存储数据,格式如下
c1 c2 c3
2 3 6
然后监听了dataChanged信号,当c2列的值发生变化的时候,c3的值随之发生变化
代码如下
void ChangeTheValueAndTotalPrice(QModelIndex x,QModelIndex y ,QVector<int> m)
{
double price = model->data(model->index(x.row(), 0)).toString().toDouble();
double weight = model->data(model->index(x.row(), 1)).toString().toDouble();
double money = price * weight;
cout << money << endl;
//model->setItem(x.row(), 2, new QStandardItem(QString::number(money, 10, 2)));
}
当我不执行setItem的话,执行cout输出就只输出一次,而一旦执行了setItem,这个函数就会死循环,一直执行cout。
正常应该就是c2列发生变化,监测到变化,然后改变c3列的值就好了呀,不懂为何会发生死循环?
求解
c1 c2 c3
2 3 6
然后监听了dataChanged信号,当c2列的值发生变化的时候,c3的值随之发生变化
代码如下
void ChangeTheValueAndTotalPrice(QModelIndex x,QModelIndex y ,QVector<int> m)
{
double price = model->data(model->index(x.row(), 0)).toString().toDouble();
double weight = model->data(model->index(x.row(), 1)).toString().toDouble();
double money = price * weight;
cout << money << endl;
//model->setItem(x.row(), 2, new QStandardItem(QString::number(money, 10, 2)));
}
当我不执行setItem的话,执行cout输出就只输出一次,而一旦执行了setItem,这个函数就会死循环,一直执行cout。
正常应该就是c2列发生变化,监测到变化,然后改变c3列的值就好了呀,不懂为何会发生死循环?
求解
...全文
相关推荐
QT5.5 动态刷新tabview
qt5.5中实现了表格动态一行一行刷新的效果 整体采用多线程的方式实现 细节看代码吧 不要分
告别QTableWidget卡顿:从QTableView到Model架构的大数据表格优化
在桌面应用开发中,当表格数据量达到数万行时,界面卡顿成为常见性能瓶颈。传统QTableWidget因逐单元格创建Item对象并频繁触发视图刷新,导致内存膨胀与渲染开销剧增。理解其运行机制后,可通过关闭排序、暂停更新等低成本手段缓解症状,但根治之道在于采用Qt的Model/View架构,自定义QAbstractTableModel配合QTableView,实现数据与视图解耦,按需加载可见区域数据。结合批量插入、工作线程解析及懒加载技术,即使面对百万级数据也能保持流畅滚动。本文从底层原理到工程实践,系统解析大数
用QT实现的表格编辑器
用QT实现的表格编辑器
Qt连接mysql数据库足球项目
数据库实验使用的c++ Qt框架连接mysql数据库实现的项目,实现了球队表和球员表,可以对球员增删改查,还有模糊查询,升序降序以及图片的插入。
untitled1.rar
Qt 用QTreeView实现组织架构,没有太多东西,Qt4.8.5.


