继承对象中的信号和插槽问题[Qt5]

继承对象中的信号和插槽问题[Qt5],qt,connect,Qt,Connect,我创建了一个MySoundEffect类,因为我想通过使其能够返回播放开始后经过的时间来增强其isplay()函数。所以我做了你在代码中看到的 问题是,构造函数中的connect抛出了一个错误。它的作用就好像我连接到了父级的asetTimer()插槽,当然这个插槽并不存在。我在运行时用调试器检查了this指针,它指向一个MySoundEffect对象 我做错了什么 h 错误: QObject::connect: No such slot QSoundEffect::asetTimer() in

我创建了一个MySoundEffect类,因为我想通过使其能够返回播放开始后经过的时间来增强其isplay()函数。所以我做了你在代码中看到的

问题是,构造函数中的connect抛出了一个错误。它的作用就好像我连接到了父级的asetTimer()插槽,当然这个插槽并不存在。我在运行时用调试器检查了this指针,它指向一个MySoundEffect对象

我做错了什么

h

错误:

QObject::connect: No such slot QSoundEffect::asetTimer() in ../rob3/mysoundeffect.cpp:6
添加Q_对象宏:

class MySoundEffect : public QSoundEffect
{
    Q_OBJECT
    //...
然后运行qmake。没有这个宏,moc(元对象编译器)就找不到您的类,也无法创建插槽和信号,所以编译器会向您显示这个错误,即不存在这样的插槽

更多信息:

您还编写了使用Qt5的代码,因此很高兴知道有了新的语法


它允许您以更具信息性的方式捕获许多错误(例如丢失的宏或不同的类型),并在编译时执行此操作。

您在构造函数之前忘记了神奇的关键字Q\u OBJECT
没有它,信号/插槽机制就无法工作。

哦,天哪。。我真丢脸。谢谢!:)
QObject::connect: No such slot QSoundEffect::asetTimer() in ../rob3/mysoundeffect.cpp:6
class MySoundEffect : public QSoundEffect
{
    Q_OBJECT
    //...