css - Eclipse RCP CSS pack() 不考虑新字体

标签 css eclipse swt eclipse-rcp

我在 RCP 应用程序上工作并使用 eclipse-css-feature 来改变应用程序的整体字体。但是在使用的时候,主视角的table-elements不适应变化。在 createPartControl(Composite) 中,表中填充了内容,并且对每个内容调用了 TableColumn.pack()。在我将整体字体更改为 Verdana 9px 之前,列总是足够大以容纳其内容,例如“我很长很长的文字”。然而,现在这些列只显示“我的很长的文本,我...”。在 setFocus() 函数期间重新设置表的内容(清除、填充和 pack())似乎有效,但这也是一个非常糟糕的问题解决方法。此外,这并没有解决我必须等待第一次点击才能执行此操作的问题。

如何让我的应用程序在启动时正确地进入 pack() 表列?

这是我的CSS:

* {
    font: Verdana 8px;
    background-color: White;
}

最佳答案

问题是在创建控件后生成 SWT.Skin 事件之前不会应用 CSS 样式。

因此您需要在该事件之后运行您的pack。一种方法是在 createPartControl 完成后使用 Display.asyncExec 运行您的包代码。 asyncExec Runnable 应该在 SWT.Skin 之后运行。

或者,您可以获得 CSS 样式引擎并强制进行样式设置。在 3.x 兼容性 View /编辑器中使用:

IStylingEngine engine = getSite().getService(IStylingEngine.class);

engine.style(control);

关于css - Eclipse RCP CSS pack() 不考虑新字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36010481/

相关文章:

html - 对齐留在父级的 div

html - outlook 2007 不在电子邮件中显示图像按钮

java - 是否可以在Eclipse中自动将依赖的项目编译成jar?

不同操作系统中 UTF-8 的 Java 问题

java - 有没有办法在Windows 10下的SWT-Browser-View中使用EcmaScript 6?

html - 奇怪的谷歌字体呈现问题

javascript - 如何将特定的 javascript 文件或 javascript 代码加载到 HTML 文档中?

java - 尝试记住代码可视化工具的名称

java - Eclipse SWT : Browser#evaluate() always returns null

java - SWTBot 在单击时挂起