工具栏在 E4 中无法正确缩放
Toolbar does not scale correctly in E4
我有一个带有一些自定义工具栏小部件的 E4 应用程序。当应用程序 运行 in WIndows 10 没有 DPI 缩放时,一切看起来都很好。更改 DPI 设置后,应用程序工具栏未完全显示。
正确观点:
启用缩放:
application.e4xmi 看起来像:
负责创建小部件的 class 如下所示:
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 值。
将 ToolControl 项移到 ToolBar 之外。 ToolBar 内的控件不会调整栏的大小,但在 ToolBar 之外时,它们应该可以调整 TrimBar 的大小。
我有一个带有一些自定义工具栏小部件的 E4 应用程序。当应用程序 运行 in WIndows 10 没有 DPI 缩放时,一切看起来都很好。更改 DPI 设置后,应用程序工具栏未完全显示。
正确观点:
启用缩放:
application.e4xmi 看起来像:
负责创建小部件的 class 如下所示:
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 值。
将 ToolControl 项移到 ToolBar 之外。 ToolBar 内的控件不会调整栏的大小,但在 ToolBar 之外时,它们应该可以调整 TrimBar 的大小。