Qt 当我调用QWidget->;关闭()
我想知道当我调用QWidget-close()时会发生什么,我在编写了一个设置函数之后调用了它,这使我的一些插槽无法被调用 before(创建异常行为):Qt 当我调用QWidget->;关闭(),qt,qt4,qwidget,Qt,Qt4,Qwidget,我想知道当我调用QWidget-close()时会发生什么,我在编写了一个设置函数之后调用了它,这使我的一些插槽无法被调用 before(创建异常行为): pGrpCfg->setupGrpConfig() pGrpCfg->close() pGrpCfg->show() 之后(确定): pGrpCfg->close() pGrpCfg->setupGrpConfig() pGrpCfg->show(); 这是我的职责。我唯一怀疑会对它产生影响的是信号连接(我想补充一下,这些连接是从我使用QS
pGrpCfg->setupGrpConfig()
pGrpCfg->close()
pGrpCfg->show()
之后(确定):
pGrpCfg->close()
pGrpCfg->setupGrpConfig()
pGrpCfg->show();
这是我的职责。我唯一怀疑会对它产生影响的是信号连接(我想补充一下,这些连接是从我使用QSignalMapper的构造函数开始的):
void grpConfig::setupGrpConfig(){
断开(信号映射器,信号(映射(int)),此,信号(txgrpcomboxcuritemchanged(const int));
断开(此,信号(txgrpcomboxcuritemchanged(const int)),此,插槽(updateTxFailOrderLayouts(int));
myFPS->getData(请求\系统\配置);
int numTxChains=myFPS->SystemData.NumberOfTransmitterChainsInSystem;
grpList.clear();
grpList.append(“选择组”);
用于(int i=0;igetData(请求组信息,i);
grpcfgelist.at(i)->ui.leGrpName->setText(myFPS->GroupData.Group[i].Name);
grpList.append(myFPS->GroupData.Group[i].Name);
}
用于(int i=0;igetData(请求发送配置,i);
txNameList.at(i)->setVisible(true);
txNameList.at(i)->setText(myFPS->TransmitterConfigurationData[i].Name);
txGrpCBlist.at(i)->setVisible(true);
txGrpCBlist.at(i)->clear();
txGrpCBlist.at(i)->附加项(grpList);
txGrpCBlist.at(i)->setCurrentIndex(myFPS->TransmitterConfigurationData[i]。组+索引\u偏移量);
}
for(int i=numTxChains;isetVisible(false);
txGrpCBlist.at(i)->setVisible(false);
}
对于(int i=0;i尝试使用QWidget::hide()
而不是close()
尝试使用QWidget::hide()
而不是close()
它确切地告诉您它是做什么的。什么类型是pGrpCfg
?
这将告诉您重新实现的函数版本正在做什么。
它确切地告诉您它是做什么的。什么类型是pGrpCfg
?
这将告诉您重新实现的函数版本正在做什么。答案是:当我调用QWidget->Close()时,这会破坏我的信号连接。信号连接在setupGrpConfig中进行,以便在setupGrpConfig取消信号连接后调用Close。答案是:当我调用QWidget->Close()时,这会破坏我的信号连接。信号连接是在setupGrpConfig中建立的,以便在setupGrpConfig使信号连接无效后调用close。为什么否决?文档中说明了函数的功能,而您没有提供足够的信息来帮助回答更多有关它的问题。因为我阅读了t、 我甚至阅读了源代码,还有一些事情没有被告知,因为我在函数setupGrpConfig中连接的信号由于调用顺序而无效。为什么要进行否决?文档中说明了函数的功能,而您没有提供足够的信息来帮助回答更多abo但是它并没有说所有的事情,因为我读了它,我甚至读了源代码,还有一些事情没有被告知,因为我在函数setupGrpConfig中连接的信号由于调用顺序而无效。。
myFPS->getData(REQUEST_SYSTEM_CONFIGURATION);
int numTxChains=myFPS->SystemData.NumberOfTransmitterChainsInSystem;
grpList.clear();
grpList.append("Select group");
for(int i=0;i<MAX_GROUPS;i++){
myFPS->getData(REQUEST_GROUP_INFORMATION,i);
grpCfgEleList.at(i)->ui.leGrpName->setText(myFPS->GroupData.Group[i].Name);
grpList.append(myFPS->GroupData.Group[i].Name);
}
for(int i=0;i<numTxChains;i++){
myFPS->getData(REQUEST_TX_CONFIGURATION,i);
txNameList.at(i)->setVisible(true);
txNameList.at(i)->setText(myFPS->TransmitterConfigurationData[i].Name);
txGrpCBlist.at(i)->setVisible(true);
txGrpCBlist.at(i)->clear();
txGrpCBlist.at(i)->addItems(grpList);
txGrpCBlist.at(i)->setCurrentIndex(myFPS->TransmitterConfigurationData[i].Group+INDEX_OFFSET);
}
for(int i=numTxChains;i<MAX_NUMBER_OF_TRANSMITTERS;i++){
txNameList.at(i)->setVisible(false);
txGrpCBlist.at(i)->setVisible(false);
}
for(int i=0;i<MAX_GROUPS;i++){
updateGrpFailover(i, STAY,-1);
}
//need to wait till setup is complete to activate these signals (populating comboboxes overwrote UDP structs with false data)
connect(signalMapper, SIGNAL(mapped(int)), this, SIGNAL(txGrpComboBoxCurItemChanged(const int)));
connect(this, SIGNAL(txGrpComboBoxCurItemChanged(const int)),this,SLOT(updateTxFailOrderLayouts(int)));