错误:无法分配给不存在的属性“ setScale”
这是我的课程。
C ++标头
#include <QObject>
#include <QtQuick>
class Scene : public QQuickPaintedItem
{
Q_OBJECT
Q_PROPERTY(int scale READ scale WRITE setScale)
public:
Scene();
void scaleChanged(int _val);
int scale() const;
void setScale(const int &scale);
protected:
int m_scale;
};
C ++源代码
#include "Scene.h"
void Scene::scaleChanged(int _val)
{
m_scale = _val;
qDebug()<<_val;
update();
}
int Scene::scale() const
{
return m_scale;
}
void Scene::setScale(const int &scale)
{
m_scale = scale;
qDebug()<<scale;
}
Qml文件
Rectangle {
id: drawArea
color: "#ffffff"
Scene {
id: drawScene
anchors.fill: parent
anchors.centerIn: parent
scale: 1
}
}
Slider {
id: slider
value: 1
onMoved: drawScene.setScale = value
}
我尝试使用滑块更改Paint的比例,但出现错误qrc:/Page1Form.ui.qml:64:错误:无法分配给不存在的属性“ setScale” F
答案 0 :(得分:0)
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $window) {
$scope.viewDetail = function(dataItem) {
var id = dataItem.id;
$window.open('/'+vm.detailRoute+'/'+id);
};
});
应该为drawScene.setScale
:该属性命名为drawScene.scale
。 scale
是它的设置者。
setScale
应该是一个信号,您必须将其添加到您的媒体资源中(使用scaleChanged
)。当 scale 的值更改时将发出该信号。
NOTIFY
然后:
Q_PROPERTY(int scale READ scale WRITE setScale NOTIFY scaleChanged)
signals:
void scaleChanged(int val);
slots:
void debugScale(int val);