我有一个用C++编写的Qt应用程序,我想要为QPushButton分配一个槽(slot)。但是我想要传递一些参数,因为我有多个QPushButton执行类似的操作,所以我想要一个带有参数的函数,但是Qt不停地告诉我没有这样的槽位。有人能告诉我为什么以及应该如何做吗?
提前致谢。
在.h文件中我有:(一开始它是私有的,但我在寻找问题时进行了更改)
public slots:
void handleButton(int row, int col);
接着在.cpp文件中:
void fieldWindow::handleButton(int row, int col){
cout << row << " " << col << endl;
}
同样在同一个 .cpp 文件中再次出现:
connect(this->buttonsField[i][j], SIGNAL(released()), this, SLOT(handleButton(i,j)));
这是在两个嵌套循环中完成的,因此 i
和 j
都有明确定义。
我的错误是:
QObject::connect: No such slot fieldWindow::handleButton(i,j) in ..\Proj1\fieldwindow.cpp:41
QObject::connect: (receiver name: 'fieldWindow')
我在互联网上读到说我应该写 handleButton(int, int);
,但是接下来我该如何传递参数呢?
connect
语句在SIGNAL(...)
表达式中不接受任何参数。SIGNAL
是一个宏,它将函数签名封装在一个字符串中,以便传递给connect
。 - leemeshandleButton(int,int)
?!但我怎么传递参数呢?! - Bankin