【问题标题】:What happens when I call QWidget->close()当我调用 QWidget->close() 会发生什么
【发布时间】:2010-02-19 00:47:04
【问题描述】:

我想知道当我调用 QWidget-close() 时会发生什么,我在编写了一个设置函数后调用了它,这禁用了我的一些插槽以被调用。

之前(产生奇怪的行为):
pGrpCfg->setupGrpConfig();
pGrpCfg->close();
pGrpCfg->show();

之后(确定):
pGrpCfg->close();
pGrpCfg->setupGrpConfig();
pGrpCfg->show();

这是我的功能。我怀疑唯一可能对其产生影响的是信号连接(我想补充一点,这些连接从我使用 QSignalMapper 的构造函数开始):

无效 grpConfig::setupGrpConfig(){
断开连接(signalMapper,SIGNAL(映射(int)),这个,SIGNAL(txGrpComboBoxCurItemChanged(const int)));

断开连接(这个,信号(txGrpComboBoxCurItemChanged(const int)),这个,SLOT(updateTxFailOrderLayouts(int)));

myFPS->getData(REQUEST_SYSTEM_CONFIGURATION);
int numTxChains=myFPS->SystemData.NumberOfTransmitterChainsInSystem;
grpList.clear();
grpList.append("选择组");
for(int i=0;igetData(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;igetData(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;isetVisible(false);
    txGrpCBlist.at(i)->setVisible(false);
}

for(int i=0;i

}

【问题讨论】:

    标签: qt qt4 qwidget


    【解决方案1】:

    尝试使用QWidget::hide() 而不是close()

    【讨论】:

      【解决方案2】:

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

      它会准确地告诉您它的作用。 pGrpCfg 是什么类型? 这将告诉您该函数的重新实现版本在做什么。

      【讨论】:

      • 为什么投反对票?文档说明了该函数的作用,而您没有提供足够的信息来帮助回答更多有关它的信息。
      • 好吧,它并没有说明一切,因为我读过它,我什至阅读了源代码,还有其他一些事情没有被告知,因为我在函数 setupGrpConfig 中连接的信号仅仅因为它被调用的顺序..
      【解决方案3】:

      答案是:当我调用 QWidget->Close() 时,这会破坏我的信号连接。信号连接是在 setupGrpConfig 中建立的,因此在 setupGrpConfig 使信号连接无效后调用 close。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        相关资源
        最近更新 更多