使用QTableWidget中插入行命令insertRow()后,使用Item()命令导致程序崩溃

祖丁 2024-10-25 11:11:48

最近在学习使用QT做表格时,希望添加新数据时若行数不够则自动插入行,但当使用insertRow()函数插入行后使用Item()->Text()命令导致程序崩溃,但使用setItem()时可以正常运行,代码如下:

运行注释中的代码结果如下:

其中qDebug命令是用来确定运行到哪一行时导致程序崩溃。

个人推测崩溃原因是因为insertRow()函数在插入行时没有创建对应的QTableWidgetItem 对象,导致使用Item()时操作空指针导致程序崩溃。

因为刚刚学习QT,希望能够对命令更了解,麻烦各位大佬告知笔者崩溃原因,希望各位大佬不吝解答,谢谢!

 

 

...全文
725 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyangqingyun 2024-11-29
  • 打赏
  • 举报
回复

因为对象不存在,你要先设置setitem后就可以settext

maybo 2024-10-25
  • 打赏
  • 举报
回复

添加数据前 ui->tableWidget->insertRow(i+1); //表格增加一行 循环进行就可以了

zare戏言 2024-10-28
  • 举报
回复
@maybo 应该是这个原因,insertrow里的row可能是count,setitem里的row是从0开始的。不过我还是建议使用setrowcount来增加行
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧