工具栏在E4中无法正确缩放

时间:2018-07-11 08:14:21

标签: eclipse-rcp scaling e4

我有一个带有一些自定义工具栏小部件的E4应用程序。当应用程序在没有DPI缩放的情况下以Windows 10运行时,一切看起来都很好。更改DPI设置后,无法完全查看应用程序工具栏。

正确的视图:

enter image description here

启用缩放后:

enter image description here

application.e4xmi看起来像: enter image description here

负责创建窗口小部件的类如下:

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值。

1 个答案:

答案 0 :(得分:1)

将ToolControl项移动到ToolBar之外。在ToolBar内部的控件不会调整其大小,但是在ToolBar外部时,它们应该调整TrimBar的大小。