c++ - Qt自定义QPushButton点击信号

标签 c++ qt qpushbutton qt-signals

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

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

最佳答案

如果您使用 C++11 connection syntax您可以使用带有 stringfret 参数的调用 testSlot 的 lambda:

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

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

关于c++ - Qt自定义QPushButton点击信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668541/

相关文章:

python - 单击 QPushButton 时,它会触发两次

c++ - 媒体文件无法切换播放

c++ - 确定预处理器 token 的值

c++ - 在 C++ 中使用 std::getline() 的签名错误

c++ - Qt Creator session 管理器错误?

python - 如何使用 Python 和 Qt 动态更改子部件?

qt - 清除 QML anchor

python - 是否可以使用 PYQT5 中的元素创建一个类

C++: "Iterable<T>"接口(interface)

c++ - (Qt C++) QPushButton setIcon() 不工作