QThread 与 MainWidget 通信 问题

stivenjia stivenjia 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
设计思路:MainWidget 负责 GUI 更新,BackService 负责后台数据处理,当BackService处理完毕后发出Signal到MainWidget。
MainWIdget收到该Signal执行GUI更新操作,现在的问题是,BackService的Signal正常发出,MainWidget也能执行了Slot但是在执行Slot的时候QT Creator提示

链接代码如下:
MainWidget 构造部分(m_lpBackServicePtr 为 BackService ):
connect(m_lpBackServicePtr,SIGNAL(UpdateWniResGui(QString,QVector<QString>*,CResource*)),this,
SLOT(OnUpdateWniResList(QString,QVector<QString>*,CResource*)),Qt::BlockingQueuedConnection);

在执行OnUpdateWniResList后发生:
异常提示


void MainWindow::OnUpdateWniResList(const QString &spTrace,QVector<QString> *lpvtList,CResource *lpRes)
{
QString szTmp;
QDir tgDirTmp;
DWORD dwRetVal = 0;
CUsualParam tgUsual = m_tgOptionsParam.GetUsual();
if( m_qMainBrowser.document()->lineCount() == MAX_ROWS*10 ) m_qMainBrowser.clear();
m_qMainBrowser.insertPlainText(spTrace);
for(int nIndex = 0;nIndex < lpvtList->count();nIndex++)
{
tgDirTmp = lpRes->GetLocalPath(); // 出现问题行
szTmp.sprintf("%s.jc",lpvtList->at(nIndex) );
if( (!tgDirTmp.exists(lpvtList->at(nIndex))) && (!tgDirTmp.exists(szTmp)) )
{
QTableWidgetItem *lpItem =NULL;
dwRetVal = AppendRow(lpvtList->at(nIndex),0,"Ready",tgDirTmp.currentPath());
JTransmissionItem *lpItemService = new
JTransmissionItem(this,m_tgOptionsParam,*lpRes,lpvtList->at(nIndex),
m_qMainTable.item(dwRetVal,1));
m_tgThreadPool.start(lpItemService);
}
}
}

请问怎么解决这个问题:QT 4.6.1 OS Windows7
...全文

相关推荐

qt5半成品飞机大战小游戏

mainwidget.cpp与mainwidget.h文件可能定义了游戏的主界面,这可能包括了游戏窗口的构造函数、各个控件的布局以及信号与槽的连接,用于响应用户的操作和显示游戏信息。

℡熊小猫

QTEST基础练习

**多线程应用**:创建线程,理解如何在线程间通信,注意线程安全问题。通过这个"QTEST基础练习",你可以亲手实践这些概念,逐步提升你的QT编程技能。

zcm_xh2008

python GUI库图形界面开发之PyQt5线程类QThread详细使用方法

QThread 能够有效地隐藏与不同操作系统相关的底层细节,简化了多线程编程的过程。通过继承 QThread 类并重写 `run()` 方法,可以轻松地创建并启动新的线程。

weixin_38675969

QT间进程通信之共享内存

本文介绍了一个基于Qt框架的应用程序,实现了主窗口类MainWidget,支持在共享内存中发送和接收文本数据。使用QSharedMemory进行进程间通信,并通过信号槽机制实现多线程交互。程序包含启动

跟着梦的脚步走

40-基于89C52的量程自适应切换数字电压表设计(设计+说明+原理+仿真).rar

项目40-基于89C52的量程自适应切换数字电压表设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本设计以89C52单片机为控制核心,具备高效数据处理与控制能力,可稳定驱动量程自适应切换数字电压表工作。 (2)采用ADC0808作为模数转换传感器,精准将模拟电压信号转换为数字信号,为电压测量提供准确数据基础。 (3)配备数码管显示器,清晰直观呈现测量得到的电压数值,方便用户快速读取电压信息,了解测量结果。 (4)具有自动量程切换功能,能依据输入电压大小智能调整量程,确保测量精度,拓宽电压测量范围。 (5)以待测电压输入为监测对象,资料包含原理图等,助力学生掌握量程自适应数字电压表设计要点。

创界工坊工作室
评论 1
收藏 已收藏
分享
返回顶部
stivenjia
Qt 21,503 成员 26,693 内容