#include
#include
#include "qtquick2applicationviewer.h"
#include
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
// qmlRegisterType("sensor",1,0,"Sensor");
Sensor data;
viewer.rootContext()->setContextProperty("sensor", &data);
viewer.setMainQmlFile(QStringLiteral("qml/qunima/main.qml"));
//viewer.showExpanded();
viewer.show();
return app.exec();
}
这是我的main.cpp
#include "Sensor.h"
#include
Sensor::Sensor (QObject *parent)
:QObject(parent)
,lightState(false)
{
// this->lightState = false;
}
bool Sensor::getLightState()
{
qDebug()<<"到这进不来"<<lightState;
return lightState;
}
void Sensor::setLightState(bool light)
{
if(light != lightState)
{
lightState = light;
//
// Important
// add functions here!!!!!!
qDebug()<<"到这可以打印出来~"<<endl;
emit lightStateChanged(lightState);
}
qDebug()<<"this lightState is"<<lightState;
}
Sensor::~Sensor()
{
}
这是我的Sensor.cpp
#ifndef SENSOR_H
#define SENSOR_H
#include
class Sensor : public QObject
{
Q_OBJECT
Q_PROPERTY(bool lightState READ getLightState WRITE setLightState NOTIFY lightStateChanged)
public:
explicit Sensor(QObject *parent = 0);
~Sensor();
//Q_INVOKABLE getLightState();
bool getLightState();
void setLightState(bool light);
private:
bool lightState;
signals:
void lightStateChanged(bool light);
};
#endif // SENSOR_H
这是我的Sensor.h
问题是 我在 qml中可以对lightState进行赋值 但是无法调用getLightState()和setLightState()两个函数 请教大神指导如何访问这两个函数 急!!!!