状态栏的插槽->messageChanged() QT
SLOT for statusbar->messageChanged() QT
我的 QT 状态栏有问题。我想从状态栏接收和处理 changeMessage,博我有插槽问题。我应该如何编写正确的插槽或如何正确使用连接功能,我也有问题。
file.cpp
connect(statusbar, SIGNAL(messageChanged(const QString &message)), this, SLOT(func1(const QString &message)));
在底部
void file::func1(const QString &message)
{
statusBarElements->at(0)->setText(statusBarTextElements->at(0));
}
file.h
private slots:
void func1(const QString &message);
我已经收到消息
QMetaObject::connectSlotsByName: No matching signal for func1(QString)
如果您正在使用 Qt5
,则连接中不需要 SIGNAL
和 SLOT
宏。
connect(statusbar, &QStatusBar::messageChanged, this, &file::func1);
如果签名不兼容,这将在编译时失败并给出错误消息。
编辑:
作为@G.M。在评论中说
QMetaObject::connectSlotsByName: No matching signal for func1(QString)
是 Qt 在尝试使用插槽作为信号时给出的错误。
我的 QT 状态栏有问题。我想从状态栏接收和处理 changeMessage,博我有插槽问题。我应该如何编写正确的插槽或如何正确使用连接功能,我也有问题。
file.cpp
connect(statusbar, SIGNAL(messageChanged(const QString &message)), this, SLOT(func1(const QString &message)));
在底部
void file::func1(const QString &message)
{
statusBarElements->at(0)->setText(statusBarTextElements->at(0));
}
file.h
private slots:
void func1(const QString &message);
我已经收到消息
QMetaObject::connectSlotsByName: No matching signal for func1(QString)
如果您正在使用 Qt5
,则连接中不需要 SIGNAL
和 SLOT
宏。
connect(statusbar, &QStatusBar::messageChanged, this, &file::func1);
如果签名不兼容,这将在编译时失败并给出错误消息。
编辑:
作为@G.M。在评论中说
QMetaObject::connectSlotsByName: No matching signal for func1(QString)
是 Qt 在尝试使用插槽作为信号时给出的错误。