connect(ui->tablewidget,SIGNAL(cellClicked()),this,SLOT(slot_clicked_habit()));会提示错误吗
时间: 2023-11-11 17:04:23 浏览: 88
是的,你提供的`connect`语句存在错误。`cellClicked()`信号需要提供两个参数,分别是单元格的行索引和列索引。此外,还需要确保槽函数`slot_clicked_habit()`也接受这两个参数作为参数。
下面是正确的`connect`语句示例:
```cpp
connect(ui->tableWidget, SIGNAL(cellClicked(int,int)), this, SLOT(slot_clicked_habit(int,int)));
```
在这个示例中,我们将`cellClicked()`信号与槽函数`slot_clicked_habit()`进行连接。`cellClicked()`信号提供了两个整型参数,分别表示单元格的行索引和列索引。因此,在`connect`语句中,我们需要确保槽函数`slot_clicked_habit()`也接受这两个整型参数。
确保在头文件中声明槽函数`slot_clicked_habit()`时包含这两个整型参数:
```cpp
private slots:
void slot_clicked_habit(int row, int column);
```
这样,当单元格被点击时,`slot_clicked_habit()`槽函数将会被调用,并传递单元格的行索引和列索引作为参数。
请注意,如果使用的是Qt5或更高版本,建议使用新的连接语法,而不是旧的字符串连接语法。新的连接语法更加类型安全和直观:
```cpp
connect(ui->tableWidget, &QTableWidget::cellClicked, this, &YourClass::slot_clicked_habit);
```
在这种情况下,不需要在槽函数声明中包含参数。编译器会自动根据槽函数的参数列表来匹配信号的参数。
阅读全文