0

我对 qooxdoo 很陌生,在为我的应用程序创建自定义主题时需要帮助。

我复制了原生Modern主题并修改了它的一些功能,现在我的问题是如何将它作为新主题添加到 qooxdoo 以及如何在我的应用程序中使用它?

任何帮助或指导将不胜感激。

4

3 回答 3

1

您不需要复制它,只需扩展主题就可以了。如果您使用 create-application.py 帮助程序使用 qooxdoo 桌面框架创建了您的应用程序,那么您应该已经有了一个运行和扩展现代主题的自定义主题。如果没有,您只需编辑应该位于根项目文件夹中的 config.json 文件并搜索名为 QXTHEME 的键。该键的值是指定主题的类名。将其更改为您的自定义主题类并重新构建应用程序以查看结果。以下是有关如何使用主题的更多资源:http: //manual.qooxdoo.org/current/pages/desktop/ui_custom_themes.html

于 2013-11-07T06:55:31.197 回答
0

补充一点马丁的回答:你不复制和修改主题代码,你扩展覆盖,就像类代码一样。

如果您使用create-application.py创建应用程序骨架,则source/class下的默认代码结构已经包含自定义主题类(在source/class//theme/*下)。问题是那些主题类从现代主题扩展而来,实际上并没有覆盖任何东西,所以你有效地获得了现代的外观和感觉。

但是您可以继续充实这些自定义主题类,使用适合您口味的属性,从而创建您自己的主题。

于 2013-11-07T17:27:27.073 回答
-1

我发现在不查看源代码的情况下通过扩展现有的本机主题(经典、现代......等)之一来创建自定义主题非常困难,我也不想通过修改原始 API 文件来搞乱它们,所以我做了以下事情:

1-替换我的应用程序目录 myapplication/source/class/myapplication/theme/中的文件:使用/qooxdoo-directory/framework/source/class/qx/theme/modern/. 总共替换了四个文件(Appearance.js、Decoration.js、Color.js 和 Font.js)。

/qooxdoo-directory/framework/source/resource/qx/decoration/Modern2-将装饰目录从我的应用程序目录复制到: myapplication/source/recourse/myapplication/decoration.

3-将图标目录复制qooxdoo-directory/framework/source/resource/qx/icon/Tango到我的应用程序目录myapplication/source/resource/myapplication/icon

4-Tango.jsqooxdoo-directory/framework/source/class/qx/theme/icon/Tango.js我的应用程序目录复制myapplication/source/class/myapplication/theme/icon/Icon.js

5-编辑元文件Themes.js并将其更改为:

    qx.Theme.define("myapplication.theme.Theme",
    {
      元:
      {
        颜色:myapplication.theme.Color,
        装饰:myapplication.theme.Decoration,
        字体:myapplication.theme.Font,
        图标:myapplication.theme.icon.Icon,
        外观:myapplication.theme.Appearance
      }
    });

6- 编辑Icon.js文件(我在步骤 4 中从 Tango.js 复制)并将其更改为:

    qx.Theme.define("myapplication.theme.icon.Icon",
    {
      标题:“我的图标”,
      别名:{
        “图标”:“我的应用程序/图标”
      }
    });

7- 在我的应用程序的主题目录中编辑了Decoration.jsAppearance.jsColor.jsFont.js,并将类的命名空间从:

qx.Theme.define("qx.theme.modern.<file's name>",

qx.Theme.define("myapplication.theme.<file's name>",

8- 更正了Decoration.jsAppearance.js中的资产路径,从原始路径qx/decoration/Modernqx/icon/Tango到与我的应用程序相关的路径myapplication/decorationmyapplication/icon例如:

    @asset(qx/decoration/Modern/toolbar/toolbar-part.gif)

变成

    @asset(myapplication/decoration/toolbar/toolbar-part.gif)

ps:应用程序中的相对路径是application-name/source/resource,所以你可以通过 . 来引用这个文件夹中的任何目录application-name/folder-name

9- 同样在第 8 步中,我将 decorating.js 中的别名更改为:

    aliases : {
      decoration : "myapplication/decoration"
    },

10 - 运行 generate.py 文件myapplication/source

完成了,现在我可以更改我想要的任何内容而不会导致 API 崩溃 :)

于 2013-11-08T23:09:07.303 回答