windows 如何连接不同类的信号?

68bkxrlz  于 2022-11-26  发布在  Windows
关注(0)|答案(2)|浏览(101)

第一个
我在这一行遇到错误:QObject::connect(timer, SIGNAL(timeout()), this->s, SLOT(update()));
no instance of overloaded function "QObject::connect" matches the argument list

我认为这是类信号不匹配,因为传递给lambda的this引用了App而不是SplashScreen
当我尝试将s(闪屏)传递给lambda:

connect(a, &QAbstractAnimation::finished, this, [s]
{ ... }

出现错误:App::s不是变量。
我很困惑,在这种情况下,什么是正确的连接方式?

hfwmuf9z

hfwmuf9z1#

在App类中,s是一个示例,而不是指向示例的指针。函数connect需要指针,而不是引用。
使用这些语法应该会有所帮助:

QObject::connect(timer, &QTimer::timeout, &s, &SplashScreen::update);
wn9m85ua

wn9m85ua2#

使用以下语法:

QObject::connect(timer, &QTimer::timeout, this, &SplashScreen::update);

相关问题