【发布时间】:2019-09-02 14:51:40
【问题描述】:
我要做的就是在 qspinbox 和 doublespinbox 的值发生变化时调用一个方法。
我不需要更改旋转框中的实际值,我只希望它触发另一个方法的调用。为什么下面的代码没有错误或根本没有做任何事情?连方法都不调用?
cpp
connect(uiSpinBox, SIGNAL(valueChanged()), this, SLOT(slotInputChanged));
connect(uiDoubleSpinBox, SIGNAL(valueChanged()), this, SLOT(slotInputChanged));
void ColorSwatchEdit::slotInputChanged()
{
qDebug() << "Im here";
}
标题
public:
QSpinBox *uiSpinBox;
QDoubleSpinBox *uiDoubleSpinBox;
public slots:
void slotInputChanged();
【问题讨论】:
-
信号为
SIGNAL(valueChanged(double))。 -
我试图从两个不同的 spinbox 中调用方法 slotInputChanged,一个是 Int spinner,另一个是 double。
-
@JokerMartini 使用
connect(uiSpinBox, SIGNAL(valueChanged(int)), this, SLOT(slotInputChanged)); connect(uiDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(slotInputChanged)); -
为什么人们用答案来制作 cmets....请回答问题的实际答案,以便我可以标记它
-
不是一个答案而是一个提示:连接的风格是在运行时解析连接的旧风格。您可以调查 Qt5 附带的New Signal Slot Syntax。它允许在编译时检测断开的连接。
标签: c++ qt qt-signals qt-slot