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