qt - 使用 lambda 的 QT 连接函数
问题描述
我有一个带按钮的列表,每个人都有一个名称(str1 是带有名称的 QString var),我想将它们与一个带参数的函数连接起来,但我不明白该怎么做。
QPushButton *btn = new QPushButton(str1);
connect(btn,SIGNAL(clicked()),this,SLOT(activeProjectClick()));
这是我能做的,但在这里我不能使用带参数的函数。我读到我必须将 connect 方法与 lambda 一起使用,但我不明白该怎么做。假设我想调用函数 F1(QString str) ,我该怎么做?
解决方案
我想通了,我必须在 [] 中声明 var
或者,&
在 [] 内使用
QString str;
for(QPushButton *btn : buttonsList) { connect(btn, &QPushButton::clicked, [&]({F1(str); });}
推荐阅读
- github - 如何将审阅者添加到 GitHub 存储库?
- angular - 角度路由设置问题
- .net - Angular中的“解析期间的Http失败”
- javascript - 如何配置 Storybook.js Webpack 以使用 Next.js 项目中 CSS 模块中的绝对图像路径?
- java - 使用 JAX-RS 和 swagger-core 在 swagger-ui 中的错误服务 URL
- python - Python 在多次使用递归或访问大列表时崩溃
- c - 我无法在 c 中复制字符串
- c# - 如何在 C# 代码中将数组与 sql 查询进行比较?
- jquery - 如何避免在 jinja2 中为包含的模板加载公共库
- c++ - 我的代码中有什么错误导致异常被忽略?