ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

向QtableWidget中添加自定义widget崩溃异常: 0xC0000005

2022-08-21 17:31:06  阅读:170  来源: 互联网

标签:widget parent 自定义 QtableWidget QCheckBox pCheckBox QStockView 信号 线程


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,获取股票软件;

 

标签:widget,parent,自定义,QtableWidget,QCheckBox,pCheckBox,QStockView,信号,线程
来源: https://www.cnblogs.com/bclshuai/p/16610391.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有