我是开发 SWT 应用程序的新手,正在寻找一种简单的方法来更改我已经开发的小型应用程序的主题。
在进行了一些谷歌搜索之后,我可以说似乎有一种叫做演示文稿的东西,这似乎是我可以下载现成的主题并将其应用到我的应用程序的一种方式。那正确吗?
或者,任何人都可以为我指出一个关于正确方法的好教程吗?
谢谢
如果您只是在谈论没有 Ecipse RCP 的 SWT,那么就无法为应用程序设置主题。
SWT 的主要优点之一是它使用操作系统资源来模拟系统应用程序。使用主题会与这种方法相矛盾。
但是,如果您使用的是 Eclipse RCP 4,请查看@Ran 的答案。
org.eclipse.e4.ui.css.swt.theme
扩展点支持为主题创建扩展。此扩展定义了样式的 ID 和指向 CSS 文件的指针。
您还可以通过 org.eclipse.core.runtime.products 扩展中的 cssTheme 属性定义默认主题。这也可用于定义固定样式。
要切换样式,请使用IThemeEngine
.
package com.example.e4.rcp.todo.handlers;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
public class ThemeSwitchHandler {
// Remember the state
static boolean defaulttheme= true;
@Execute
public void switchTheme(IThemeEngine engine) {
System.out.println("ThemeSwitchHandler called");
// The last argument controls
// whether the change should be persisted and
// restored on restart
if (!defaulttheme) {
engine.setTheme("com.vogella.e4.todo.defaulttheme", true);
} else {
engine.setTheme("com.vogella.e4.todo.redtheme", true);
}
defaulttheme= !defaulttheme;
}
}