我在 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/