我有更改数组的 个别元素,而不是具有单独的接收器插槽的功能自旋控制块,我想只指定在信号控制发送的消息Qt的槽与默认参数
你可以用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);
但是,然后接收器功能需要知道gui的许多细节 - 即。有权访问所有的旋转控制对象 – 2012-02-22 23:34:35
我不知道我关注你。如果您将每个旋转控件上的对象名称设置为“0”,“1”等,则可以在处理程序中使用sender() - > objectName()。toInt()来实现上述内容。处理程序不需要知道什么比发送信号的'QObject'更多。只要说明,'sender()'是handler()所在对象的函数。不需要知道所有的旋转控制。 – 2012-02-22 23:49:37
确定使用对象名称,是的,这是一个很好的soln。我正在考虑将sender()与spin0 ptr进行比较,后者将gui与处理程序紧密耦合! – 2012-02-22 23:56:34