从Qt4.8移植到Qt5.5时没有这样的信号



我们目前正在尝试将应用程序从Qt4.8移植到Qt5.5,并且我们在运行时遇到信号连接问题。

我们使用旧的信号和插槽语法,这仍然是支持的,我们在Qt5.5下运行时获得像"no such signal"这样的消息,而在Qt4.8下执行得很好。

例如,我们有以下连接:

connect(_vuePalette, SIGNAL(paletteModifiee(Pointeur<LUT>, Pointeur<Fonction>, TypeValeurVue, bool)), this, SLOT(paletteModifiee_SLOT(Pointeur<LUT>, Pointeur<Fonction>, TypeValeurVue, bool)));

运行时生成的消息为:

QObject::connect: No such signal VuePalette::paletteModifiee(Pointeur, Pointeur, TypeValeurVue, bool) in veimage .cpp:83(发件人名称:'VuePalette')

_vuePalette指的是一个类"VuePalette",它派生自QWidget并包含Q_OBJECT宏,这指的是一个名为"VueImage"的类,它派生自多个从QObject派生的类,"VueImage"也包含Q_OBJECT宏。

信号和插槽分别定义在"VuePalette"类的"signals"部分和"VueImage"类的"public slots"部分。

有人对这件事有什么提示吗?

最诚挚的问候,安东尼

感谢您的回复。

我相信我已经找到了问题所在:在"连接"语句中,"Pointeur"是一个QSharedPointer,因此"LUT"one_answers"function"类需要从QObject继承并包含Q_OBJECT宏。

对不起,我之前没有找到,但如果它能帮助别人,那就值得了。

相关内容

  • 没有找到相关文章

最新更新