Qt 自定义 QPushButton 点击​​信号

Rit*_*ter 1 c++ qt qt-signals qpushbutton

我想发送两个整数,string 和 fret,到一个 SLOT,它将处理被按下的按钮的位置。SIGNAL 和 SLOT 参数必须匹配,所以我想我需要重新实现 QPushButton::clicked 事件方法。问题是我是 Qt 的新手,可以使用一些指导。

connect(&fretBoardButton[string][fret], SIGNAL(clicked()), this, SLOT     (testSlot()));
Run Code Online (Sandbox Code Playgroud)

ajs*_*ort 5

如果您使用C++11 连接语法,您可以使用testSlot带有stringfret参数调用的 lambda :

connect(&fretBoard[string][fret], &QPushButton::clicked, [this, string, fret]() {
    testSlot(string, fret);
});
Run Code Online (Sandbox Code Playgroud)

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