使用常量参数连接插槽

Connect slot with constant argument

需要使用常量参数将复选框连接到树视图中的自定义插槽,如下所示:

connect(checkBox, SIGNAL(clicked(bool)), tableView, SLOT(mySlot(int col, bool)));

第一个参数类型 int 应该像 0,1,2 这样的常量...如何在 C++11 中使用新的 Qt 5 连接系统和 lambda 表达式正确地编写它?

根据 new signal syntax documentation,它应该是这样的:

connect(checkBox, &CheckBox::clicked,
        [&tableView](bool b) { tableView.mySlot(2, b); });

这里CheckBoxcheckBox的类型,我们硬编码了值2作为mySlot的第一个参数。

这有效,我检查过:

QObject::connect(checkBox, &QCheckBox::clicked, [=](bool checked) {
    tableView->mySlot(1, checked);
});