我有一个带有一些自定义工具栏小部件的E4应用程序。当应用程序在没有DPI缩放的情况下以Windows 10运行时,一切看起来都很好。更改DPI设置后,无法完全查看应用程序工具栏。
正确的视图:
启用缩放后:
负责创建窗口小部件的类如下:
public class OpenOrderDropDown {
@Inject
private IEclipseContext context;
private Combo combo;
private static final String[] ITEMS = {"Default", "Planning", "Open JobOrders", "Stock Units", "To Schedule"};
@PostConstruct
public void createControls(final Composite parent) {
RowLayout layout = new RowLayout();
parent.setLayout(layout);
Label label = new Label(parent, SWT.LEFT);
label.setText("View: ");
combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
combo.setItems(ITEMS);
combo.select(0);
combo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
IEventBroker eventBroker = context.get(IEventBroker.class);
eventBroker.post("openOrdersView", combo.getText());
}
});
}
@Inject
@Optional
public void changeSelection(@UIEventTopic("changeOpenOrdersView") String selection) {
if (selection == null || selection.isEmpty()) {
selection = "Default";
}
if (combo != null && !combo.isDisposed()) {
combo.select(combo.indexOf(selection));
}
}
}
是否可以通过某些方法更改工具栏中小部件的高度?我知道如何计算DPI更改,但无法在任何组件上设置任何heigt / width值。
答案 0 :(得分:1)
将ToolControl项移动到ToolBar之外。在ToolBar内部的控件不会调整其大小,但是在ToolBar外部时,它们应该调整TrimBar的大小。