我有一个SWT.TOGGLE
按钮的矩阵,这些按钮代表我的应用程序中的某些切换激活器。
想法是,如果将它们存储为激活状态,则将它们切换(按下),但显示为SWT.READ_ONLY
,因为此屏幕仅用于显示目的,并且必须是非交互式的。
问题是,如果我在按钮上添加SWT.READ_ONLY
,则setSelection(true)
不起作用,并且我正在呼叫setSelection(true)
的所有按钮都未切换。
我们如何处理呢?
Button button = new Button(column, SWT.TOGGLE | SWT.READ_ONLY);
button.setSelection(true);
谢谢
答案 0 :(得分:1)
class test extends Promise {
constructor(fn) {
super(fn)
return this
}
wait(seconds) {
return this.then(() => new test(resolve => {
setTimeout(function() {
resolve(seconds)
}, seconds * 1000);
}))
}
done(fn) {
return super.then(fn)
}
}
console.log('start');
p = new test(r => r())
p.wait(3) //(2) must be before (1)
.done(x => console.log(x))
.wait(1)
.done(x => console.log(x))
不是Button的有效样式,通过指定它会得到未定义的行为。您只能将Javdoc中列出的样式用于单个控件。
在SWT的当前实现中,SWT.READ_ONLY
与SWT.READ_ONLY
的值相同,因此您有效地使用了SWT.PUSH
,这是明确禁止的。该实现可能选择实现SWT.TOGGLE | SWT.PUSH
,这就是SWT.PUSH
不起作用的原因。
停止按钮事件的唯一方法是setSelection
,但这将使该值变灰。
因此,您可能希望使用其他方式来显示这些设置。