向QtableWidget中添加自定义widget崩溃异常: 0xC0000005
1.问题描述
想给QTableWidget添加QCheckBox,代码如下,tableWidget->setCellWidget老是崩溃(0x0F954E63 (qwindows.dll)处(位于 QStockView.exe 中)引发的异常: 0xC0000005: ),我用的其他的tableWidget添加QCheckBox却是正常的。搞了一天;
QCheckBox* pCheckBox = new QCheckBox(); pCheckBox->setFixedWidth(20); pCheckBox->setChecked(false); ui.tableWidgetHis->setCellWidget(rownum, colum++, pCheckBox);
最后咋输出窗口发现提示了两行错误;,意思是不能在不同的线程中去设置parent;才检测了下,果然我下载数据是单独的线程,下载数据线程去操作了界面线程,无法为QCheckBox设置父类;
QObject::setParent: Cannot set parent, new parent is in a different thread
QObject::installEventFilter(): Cannot filter events for objects in a different thread.
2.解决办法
用信号槽去连接信号和函数。在槽函数中去执行操作界面的创建;信号槽具有跨线程的执行的作用;
connect(this, &QStockView::SignalHisAnaLyzeFinsh, this,&QStockView::SlotHisAnaLyzeFinsh,Qt::QueuedConnection);
线程中发送信号,界面线程中执行槽函数;
关注QStockView,获取股票软件;
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-08-21 QScrollBar设置滑块滑槽箭头增加减少按钮的样式设置
2017-08-21 shell 之解释器、变量、字符串、数组