我在Visual Express 2010上使用qt,c ++开发了一个程序,我使用了两个版本的qwt(qwt5和qwt6)
在我班级的.h文件中,我在include文件中添加了一个测试
我还对语句槽进行了测试(因为版本qwt5和qwt6之间的参数类型发生了变化)
这里是.h:
中的代码#ifdef QWT6
void leftPlotPickerSelected ( const QPointF& ); //qwt6
#else
void leftPlotPickerSelected ( const QwtDoublePoint & ); // qwt5
#endif
在.cpp文件中,我还添加了如下测试:
#ifdef QWT6
connect ( m_pPlotPickerLeft, SIGNAL ( selected ( const QPointF&) ),SLOT ( leftPlotPickerSelected ( const QPointF&)) ); //qwt6
#else
connect ( m_pPlotPickerLeft, SIGNAL ( selected ( const QwtDoublePoint & ) ), SLOT ( leftPlotPickerSelected ( const QwtDoublePoint & ) ) ); //qwt5
#endif
当我通过调试运行程序时,与每个插槽的连接不起作用,并在输出中显示警告:
Warning: Object::connect: No such slot classeA::leftPlotPickerSelected ( const QPointF&)
Warning: Object::connect: (receiver name: 'classeABase')
但是当我在.h文件中的插槽语句中评论#endif时,连接效果很好,
我不知道为什么.h文件中的#endif测试会阻塞连接插槽?
你能帮帮我吗?提前谢谢。