我想将两个整数(字符串和品格)发送到SLOT,该SLOT将处理按下的按钮的位置。 SIGNAL和SLOT参数必须匹配,所以我认为我需要重新实现QPushButton::clicked事件方法。问题是我是Qt的新手,可以使用一些指导。

connect(&fretBoardButton[string][fret], SIGNAL(clicked()), this, SLOT     (testSlot()));

最佳答案

如果使用C++11 connection syntax,则可以使用带有testSlotstring参数调用fret的lambda:

connect(&fretBoard[string][fret], &QPushButton::clicked, [this, string, fret]() {
    testSlot(string, fret);
});

此代码使用[captures, ...](arguments, ...) { code }语法创建一个lambda。建立连接时,它将捕获stringfret变量值,然后在单击按钮时将它们传递给testSlot

10-08 01:03