質問

qwidget-close()に電話したときに何が起こるかを知りたいと思います。

前(奇妙な動作を作成):
pGrpCfg->setupGrpConfig();
pGrpCfg->close();
pGrpCfg->show();

後(OK):
pGrpCfg->close();
pGrpCfg->setupGrpConfig();
pGrpCfg->show();

これが私の機能です。私がそれに影響を与える可能性があると思われる唯一のことは、信号接続です(これらの接続がqsignalmapperを使用するコンストラクターから始まることを追加したいと思います):

void grpconfig :: setupgrpconfig(){
切断(SignalMapper、Signal(Mapped(int))、this、signal(txgrpcomboboxcuritemchanged(const int)));

切断(this、signal(txgrpcomboboxcuritemchanged(const int))、this、slot(updatetxFailOrderLayouts(int)));

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)));

}

役に立ちましたか?

解決 3

答えは、qwidget-> close()に電話したとき、これは私の信号接続を破壊します。信号接続は、setupgrpconfigが信号接続を無効にした後、setupgrpconfigで作成されるため、Closeを呼び出します。

他のヒント

使用してみてください QWidget::hide() それ以外の close().

http://doc.trolltech.com/4.6/qwidget.html#close

それはそれが何をするかを正確に教えてくれます。何タイプですか pGrpCfg?これにより、関数の再実装バージョンが何をしているかがわかります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top