繁体   English   中英

QComboBox在“ currentIndexChanged(int)”发出时获取变量

[英]QComboBox Get The Varient When “currentIndexChanged(int)” Emitted

我很难找到有关此示例或示例的文档。

有人可以具体告诉我如何访问QComboBox中当前选定索引的QVariant

 QComboBox * combo = new QComboBox();
 combo->addItem("Bla1", QVariant(1));
 combo->addItem("Bla2", QVariant(2));
 combo->addItem("Bla3", QVariant(3));
 combo->addItem("Bla4", QVariant(4));
 connect(combo, SIGNAL(currentIndexChanged(int)), this, slot(HANDLEITMAN(int))

当然还有其他地方

 void TheCooler::HANDLEITMAN(int index)
 {
      //What do I do with index?
      //sender()?
 }

首先,使combo成为TheCooler的成员,否则将HANDLEITMAN放入具有combo作为成员的类中。 除非TheCooler::HANDLEITMAN以某种方式获取它,否则您将无法获取数据,而这是进行数据处理的逻辑方法。 那只是

 void TheCooler::HANDLEITMAN(int index)
 {
      QVariant data = combo->itemData(index);
 }

如果您不想让组合成为TheCooler类的成员,则可以使用sender()函数,该函数返回指向发送触发信号的QObject的指针(在本例中为currentIndexChanged(int) )。

void TheCooler::HANDLEITMAN(int index)
{
    QComboBox * combo = qobject_cast< QComboBox * >(sender());
    if (combo == 0)
        return; // something wrong happened

    QVariant data = combo->itemData(index);
}

如果combo为null,则您可能试图尝试自己调用该插槽,或者您已将其连接到不是QComboBox的类发出的信号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM