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

时间:2016-03-15 11:48:10

标签: css eclipse swt eclipse-rcp

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

如何在启动时正确地将我的应用程序提交到pack()表列?

这是我的css:

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

engine.style(control);