设计思路: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