Javascript Qooxdoo:设置单个小部件的样式

Javascript Qooxdoo:设置单个小部件的样式,javascript,qooxdoo,Javascript,Qooxdoo,对于不符合主题默认样式的单个小部件元素,最方便的方法是什么。我仍然对装饰师的用法感到困惑。如何将多个装饰器(如边框属性和背景)应用于小部件元素 我尝试过使用定制装饰器,例如: var titleBar = new qx.ui.container.Composite(); titleBar.set({ decorator : qx.ui.decoration.MBackgroundImage,

对于不符合主题默认样式的单个小部件元素,最方便的方法是什么。我仍然对装饰师的用法感到困惑。如何将多个装饰器(如边框属性和背景)应用于小部件元素

我尝试过使用定制装饰器,例如:


        var titleBar = new qx.ui.container.Composite();
        titleBar.set({
            decorator : qx.ui.decoration.MBackgroundImage,
                        style : {
                backgroundImage : '/images/tbar.png'
                        }
        });
但我收到了一个错误:


传入值为“[Mixin qx.ui.decoration.MBackgroundImage]”的方法setDecorator中类qx.ui.container.Composite的属性装饰器出错:无效

您必须实例化一个合适的decorator,而不是其中一个decorator mixin。例如,在您的情况下,类似这样的方法应该有效:

    var titleBar = new qx.ui.container.Composite();
    var myBackground = new qx.ui.decoration.Background();
    myBackground.setBackgroundImage("/images/tbar.png");
    titleBar.set({
        decorator : myBackground
    });

只有在用“qx.Theme.define”定义文档时,才应该使用装饰混合

我认为定义自定义样式的更好方法是定义一个新的外观键,并将此键用于小部件

var titleBar = new qx.ui.container.Composite(); titleBar.setAppearance("myApperanceKey"); var titleBar=newqx.ui.container.Composite(); 标题栏设置外观(“我的外观”);