繁体   English   中英

QT-如何从QVector获取信号“ currentIndexChanged” <QComboBox*>

[英]QT - How to get SIGNAL “currentIndexChanged” from QVector<QComboBox*>

我想从选定的QComboBox获取QString文本。 当我在QComboBox上选择索引时,我想从所选索引中获取QString,然后单击QcomboBox上的所需索引。

我已经研究过了

  1. Qt QCombobox currentIndexChanged信号

但还没有找到解决方法,

QVector<QComboBox*> cboxes;
 for (int i =0; i< 40 ; i++)
{
QComboBox *box = new QComboBox();
cboxes.append(box);
}
    for(int i = 0; i < 40; i++)
    {
        connect(cboxes[i], SIGNAL(currentIndexChanged(const QString &text)), this, SLOT(comboBoxAdjusted_Changed(QString)));
    }

comboBoxAdjusted_Changed函数

void DialogSettings::comboBoxAdjusted_Changed(QString text)
{
    std::cout << text.toStdString() << endl;
}

我可以尝试,但是每次更改组合框索引时,它都不输出。

for (int i =0; i< 40 ; i++)
    {
    connect(cboxes[i], static_cast<void(QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
                        [=](const QString &text){
                        std::cout << text.toStdString() << endl;
    });

我该怎么办?

我看到信号语法缺少函数输入参数。

以下是currentIndexChanged两个有效信号

void    currentIndexChanged(int index)
void    currentIndexChanged(const QString &text)

如果您必须处理index尝试以下案例。

 for(int i = 0; i < 40; i++)
 {
     connect(cboxes[i], static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),[=](int index){ /* YOUR CODE */ });
 }

暂无
暂无

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

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