c++ - 带有默认参数的 Qt 插槽

标签 c++ qt signals-slots

我有一个自旋控件 block ,它可以更改数组的各个元素 我不想使用单独的接收器槽函数,而是只想指定哪个控件在信号中发送消息

您可以使用 QSignalMapper 来做到这一点——但是是否可以像下面那样简单地做到这一点?

spin0 = new QDoubleSpinBox;
connect(spin0,SIGNAL(valueChanged(double)),this,SLOT(handler(0,double));

spin1 = new QDoubleSpinBox;
connect(spin1,SIGNAL(valueChanged(double)),this,SLOT(handler(1,double));
....

private slot:
void handler(int element,double value);

最佳答案

从任何插槽处理程序中,您都可以使用 sender()获取指向发送信号的对象的指针。然后你可以使用 objectName()属性(property)传达任何进一步的识别信息。

关于c++ - 带有默认参数的 Qt 插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403825/

相关文章:

c++ - Apple clang 和 C++20 运算符歧义与继承的比较运算符

c++ - 如何创建一个容器来容纳每种对象?

qt - 从 QMediaPlayer 获取 QAudioBuffer

c++ - Qt5 C++ : Set Spinbox Delegate For Specific Table Column

python-3.x - 我们可以在 pyside 中发出基类的信号吗?

c++ - 程序在 Windows 中跨 DLL 边界使用嵌入式 Python/C++ 代码崩溃

c++ - GDB 调试器卡在 std::cout 上

macos - Qt Mac 应用程序无法创建自包含 App Bundle (Qt Creator Build)

c++ - qt 如何通过 connect(Signal,Slot) 将 qshortcut() 的 QkeySequence 传递给函数?

c++ - 使用QSlider改变一个变量的值