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

时间:2016-11-04 11:06:08

标签: qt5 porting signals-slots

我们目前正在尝试将应用程序从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;。

有人对此事有暗示吗?

致以最诚挚的问候,

安东尼

1 个答案:

答案 0 :(得分:1)

感谢您的回复。

我相信我发现问题所在:在“connect”语句中,“Pointeur”是一个QSharedPointer,因此“LUT”和“Fonction”类需要从QObject继承并包含Q_OBJECT宏。 / p>

对不起,我之前没有找到它,但是如果它可以帮到某人那就值得了:)。