作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接到 BlueDevil::Manager::devicesChanged
,但是当我运行我的程序时,出现错误 Object::connect: No such slot Handler::changed(QList<Device*>) in src/handler.cpp:26
我该如何解决这个错误?据我所知,changed 具有正确的类型。
主要.cpp:
#include <QApplication>
#include "handler.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
Handler handler;
return app.exec();
}
处理程序.h:
#include <bluedevil/bluedevil.h>
#include <iostream>
#include <QObject>
class Handler : public QObject
{
Q_OBJECT
public:
Handler();
public Q_SLOTS:
void changed(const QList<BlueDevil::Device*> &devices);
private:
BlueDevil::Manager *manager;
BlueDevil::Adapter *defaultAdapter;
};
处理程序.cpp
#include <bluedevil/bluedevil.h>
#include <iostream>
#include <QObject>
#include "handler.h"
using namespace BlueDevil;
void Handler::changed(const QList<Device*> &devices)
{
Q_FOREACH (const Device *device, devices)
{
std::cout << qPrintable(device->friendlyName()) << std::endl;
}
}
Handler::Handler() : QObject()
{
manager = Manager::self();
defaultAdapter = manager->defaultAdapter();
connect(defaultAdapter, SIGNAL(devicesChanged(QList<Device*>)),
this, SLOT(changed(QList<Device*>)));
}
最佳答案
尝试:
connect(defaultAdapter, SIGNAL(devicesChanged(QList<BlueDevil::Device*>)),
this, SLOT(changed(QList<BlueDevil::Device*>)));
SIGNAL
和 SLOT
是宏,它们不能真正感知命名空间。
如果还是不行,试试:
connect(defaultAdapter, SIGNAL(devicesChanged(QList<Device*>)),
this, SLOT(changed(QList<BlueDevil::Device*>)));
...如果这不起作用,您必须将 using namespace BlueDevil;
放在标题中,并声明您的插槽:
void changed(const QList<Device*> &devices);
并使用您的原始连接。这有点悲伤。
关于c++ - qt 和 libbluedevil : No Such slot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695097/
我正在尝试连接到 BlueDevil::Manager::devicesChanged ,但是当我运行我的程序时,出现错误 Object::connect: No such slot Handler:
我是一名优秀的程序员,十分优秀!