首页 文章

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

提问于
浏览
-1

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

我们使用旧的语法来保留信号和插槽,这仍然是受支持的,我们在运行时在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:83中没有这样的信号VuePalette :: paletteModifiee(Pointeur,Pointeur,TypeValeurVue,bool)(发送者名称:'VuePalette')

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

信号和时隙分别在“VuePalette”类的“信号”部分和“VueImage”类的“公共时隙”部分中定义 .

有人对此事有暗示吗?

最好的祝福,

安东尼

1 回答

  • 1

    谢谢你的回复 .

    我相信我已经找到了问题所在:在“connect”语句中,“Pointeur”是一个QSharedPointer,因此“LUT”和“Fonction”类需要从QObject继承并包含Q_OBJECT宏 .

    对不起,我之前没有找到它,但是如果它可以帮助某人它是值得的:) .

相关问题