参照qt软键盘例子做了个小程序,发现不能输入,打印跟踪了下,发现QSignalMapper映射后的mapped信号没有发射,我的用法和例程一样啊,为什么没发射出去呢?部分代码如下:
signalMapper.setMapping(fom->panelButton_1, fom->panelButton_1);
signalMapper.setMapping(fom->panelButton_2, fom->panelButton_2);
……
connect(fom->panelButton_1, SIGNAL(clicked()),
&signalMapper, SLOT(map()));
connect(fom->panelButton_2, SIGNAL(clicked()),
&signalMapper, SLOT(map()));
……
connect(&signalMapper, SIGNAL(mapped(QWidget*)),
this, SLOT(buttonClicked(QWidget*)));
……
但是当我按下按钮时,自定义槽函数buttonClicked并没有被调用,说明SIGNAL mapped没有被发射,为什么呢?和例程一样啊?哪位高手指点一下那
------解决思路----------------------
signalMapper 被释放了
------解决思路----------------------
从你的connect函数推测,signalMapper可能是个局部变量。。。
------解决思路----------------------
btn1Clicked有写slots么?还有,自定义的类有写Q_OBJECT么?