我想将两个整数(字符串和品格)发送到SLOT,该SLOT将处理按下的按钮的位置。 SIGNAL和SLOT参数必须匹配,所以我认为我需要重新实现QPushButton::clicked事件方法。问题是我是Qt的新手,可以使用一些指导。
connect(&fretBoardButton[string][fret], SIGNAL(clicked()), this, SLOT (testSlot()));
最佳答案
如果使用C++11 connection syntax,则可以使用带有testSlot
和string
参数调用fret
的lambda:
connect(&fretBoard[string][fret], &QPushButton::clicked, [this, string, fret]() {
testSlot(string, fret);
});
此代码使用
[captures, ...](arguments, ...) { code }
语法创建一个lambda。建立连接时,它将捕获string
和fret
变量值,然后在单击按钮时将它们传递给testSlot
。