我正在尝试使用以下代码填充QT 5.7中的组合框:

ui->comboBox_2->addItems([]() -> QStringList {
        QDate date = QDate::currentDate();
        int current_year = date.toString("yyyy").toInt();
        QStringList year_list;
        for (int i = 0; i <= 50; i++) {
            year_list << QString::number(current_year - (50 - i));
        }
        return year_list;
    });


但这给了我这个错误:no viable conversion from '(lambda at ..)' to 'const QStringList'
有什么问题?

最佳答案

addItems需要一个QStringList,而不是生成QStringList的lambda,因此您必须调用lambda来获取QStringList:

ui->comboBox_2->addItems([]() { ... }());

关于c++ - 无法从Lambda返回QStringList到函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37884156/

10-11 04:15