我想调试事件处理代码,并希望将QEvent::Type
枚举值转换为人类可读的字符串.QEvent
有一个Q_GADGET
宏,所以可能有一种方法可以解决这个问题?
无法在QML代码中获取C++对象的属性.对象作为参数传递给信号.
预期在QML,属性text
的的Record
对象可以被提取.价值应该是abc
.QML将对象视为QVariant(Record)
,并将其属性text
视为undefined
.
Record
是类似值的类型QPoint
,所以它使用Q_GADGET
声明.
HPP:
#ifndef LISTENP_HPP_
#define LISTENP_HPP_
#include <QObject>
#include "Record.hpp"
class ListenP: public QObject
{
Q_OBJECT
public:
ListenP();
virtual ~ListenP();
void emitGotRecord();
signals:
void gotRecord(Record r);
};
#endif /* LISTENP_HPP_ */
Run Code Online (Sandbox Code Playgroud)
CPP:
#include "ListenP.hpp"
ListenP::ListenP() :
QObject()
{
}
ListenP::~ListenP()
{
}
void ListenP::emitGotRecord()
{
emit gotRecord(Record("abc"));
}
Run Code Online (Sandbox Code Playgroud)
hpp for Record:
#ifndef RECORD_HPP_
#define RECORD_HPP_
#include <QObject>
#include <QMetaType>
class Record …
Run Code Online (Sandbox Code Playgroud)