我们目前正在尝试将应用程序从Qt4.8移植到Qt5.5,我们在运行时遇到信号连接问题。
我们正在使用旧的语法来保留信号和插槽,这仍然是受支持的,我们会获得像#34;没有这样的信号"在Qt5.5下的运行时,而执行在Qt4.8下运行良好。
例如,我们有以下连接:
connect(_vuePalette, SIGNAL(paletteModifiee(Pointeur<LUT>, Pointeur<Fonction>, TypeValeurVue, bool)), this, SLOT(paletteModifiee_SLOT(Pointeur<LUT>, Pointeur<Fonction>, TypeValeurVue, bool)));
在运行时生成的消息是:
QObject :: connect:在vueimage.cpp中没有这样的信号VuePalette :: paletteModifiee(Pointeur,Pointeur,TypeValeurVue,bool):83 (发件人姓名:&#39; VuePalette&#39;)
_vuePalette指的是一个班级&#34; VuePalette&#34;它是从QWidget派生而来的,它包含Q_OBJECT宏,这指的是一个名为&#34; VueImage&#34;它是从QObject派生的多个类派生出来的,&#34; VueImage&#34;也包含Q_OBJECT宏。
信号和时隙分别在&#34;信号&#34;中定义。课程&#34; VuePalette&#34;并且在公共位置&#34;课程&#34; VueImage&#34;。
有人对此事有暗示吗?
致以最诚挚的问候,
安东尼
答案 0 :(得分:1)
感谢您的回复。
我相信我发现问题所在:在“connect”语句中,“Pointeur”是一个QSharedPointer,因此“LUT”和“Fonction”类需要从QObject继承并包含Q_OBJECT宏。 / p>
对不起,我之前没有找到它,但是如果它可以帮到某人那就值得了:)。