有没有办法重置项目的属性?
例如:
Item{
id: test
x: 10; y: 10
}
然后我将x,y
设置为(100,100)
。
无需更改x,y
至(10,10)
。
像test.reset()
这样的任何函数。
我的问题是: 我拖动一个项目,如果它没有落入正确的区域,我希望该项目自动返回。
答案 0 :(得分:3)
通常,将属性设置为undefined
会导致重置该属性。一个例子是Item
的{{3}}分组属性:
要清除锚值,请将其设置为undefined。
Qt的anchors
具有可重置属性的概念:
RESET功能是可选的。它用于将属性设置回其特定于上下文的默认值。例如,QWidget :: cursor有典型的READ和WRITE函数,QWidget :: cursor()和QWidget :: setCursor(),它还有一个RESET函数,QWidget :: unsetCursor(),因为没有调用QWidget :: setCursor()可以表示重置为特定于上下文的游标。 RESET函数必须返回void并且不带参数。
但是,对于您的具体问题,您可能需要查看property system。这演示了如何将项目返回到原始位置。
答案 1 :(得分:0)
public final class OperatorMap<T, R> implements Operator<R, T> {
private final Func1<? super T, ? extends R> transformer;
public OperatorMap(Func1<? super T, ? extends R> transformer) {
this.transformer = transformer;
}
@Override
public Subscriber<? super T> call(final Subscriber<? super R> o) {
return new Subscriber<T>(o) {
@Override
public void onCompleted() {
o.onCompleted();
}
@Override
public void onError(Throwable e) {
o.onError(e);
}
@Override
public void onNext(T t) {
try {
o.onNext(transformer.call(t));
} catch (Throwable e) {
Exceptions.throwOrReport(e, this, t);
}
}
};
}
}
还有什么?