簡體   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