c++ - 无法将 QStringList 从 lambda 返回到函数中

标签 c++ qt lambda

我正在尝试使用以下代码填充 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++ - 无法将 QStringList 从 lambda 返回到函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37884156/

相关文章:

C++:记录器设计,行/函数信息作为函数参数

c++ - 在非成员函数中访问MFC对话框的成员变量

c++ - QGraphicsItem 中的 itemChanged() 用于许多不同的项目

python - 与 Pandas 数据帧上的 'apply' 结合使用时,向 'groupby' 函数添加关键字参数时出现问题

C++ 正则表达式

c++ - 使用 BOOST 进程在单独的线程中读取子进程标准输出

qt - QML 数字动画 : setRunning() cannot be used on non-root animation nodes

qt - QObject 子对象的顺序(策略问题)

JavaFX:错误记录 ChangeListener

c++ - Lambda 函数作为构造函数中 std::function 的默认参数