使用常量参数

时间:2016-05-05 22:44:19

标签: c++ qt c++11 lambda signals-slots

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

此处CheckBoxcheckBox的类型,我们将值2硬编码为mySlot的第一个参数。

答案 1 :(得分:0)

这是有效的,我查了一下:

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