找回密码
 立即注册
收起左侧

一个qt初学者的疑问

6
回复
7561
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2018-6-4 21:01:54 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 fys1997 于 2018-6-4 21:53 编辑

我这段代码有什么问题吗
void MainWindow::write(int i, int instructionID, int page, QString islost){   ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number(instructionID)));  
  ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number(page)));   
ui->tableWidget->setItem(i,0,new QTableWidgetItem(islost));
}
这段代码就是一个槽函数,往tablewidget里面填数据,有好几百行,是不是new太多了指针释放不了,反正就是一直内存出问题,写50行的数据可以,但写道100行或者往上就不行了,各位有什么好办法或者其他方法往里面写东西吗


回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2018-6-5 15:43:02 显示全部楼层
你这每次调用这个函数就往第i行第0列写?看一下你setItem的第二个参数
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-6-5 16:03:54 显示全部楼层
wdmxtk002 发表于 2018-6-5 15:43
你这每次调用这个函数就往第i行第0列写?看一下你setItem的第二个参数

额,不好意思,是我的错误,应该是这个样子
void MainWindow::write(int i, int instructionID, int page, QString islost){   
ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number(instructionID)));  
  ui->tableWidget->setItem(i,1,new QTableWidgetItem(QString::number(page)));   
ui->tableWidget->setItem(i,2,new QTableWidgetItem(islost));
}
就是我的问题就是我创建了一个320行的表格,但是每次一运行就崩了,会不会是内存问题,或者您还有啥别的方法
回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2018-6-6 08:31:25 显示全部楼层
把错误代码贴出来,这一段代码看不出问题
回复

使用道具 举报

尚未签到

2018-6-7 12:39:04 显示全部楼层
这样是不能处理大数据的,new 一个QWidgettableItem对象就可以了,槽函数调用Qwidgettableitem::setData设置数据。
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2018-6-8 16:23:42 显示全部楼层
你不用new试试看啊,
QTableWidgetItem  item0 = QTableWidgetItem(QString::number(instructionID));
QTableWidgetItem  item1 = QTableWidgetItem(QString::number(page));
QTableWidgetItem  item2 = QTableWidgetItem(islost);
ui->tableWidget->setItem(i, 0, &item0);
ui->tableWidget->setItem(i, 1, &item1);
ui->tableWidget->setItem(i, 2, &item2);
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-6-19 18:21:56 显示全部楼层
运行崩了可能是你运行了一遍内存释放了然后没有在new
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了