Eclipse e4:创建一个 3 部分 window trim 而无需在工具控件中调整文本大小

Eclipse e4: creating a 3 part window trim without resizing text in tool control

我创建了一个 Window Trim - 顶部

现在我添加了 3 个工具控件

首先只应包含一个 SWT 文本并且永远不要调整大小...

然而,当我输入一些文本并调整 window 大小时,它会自动调整 SWT-Text 的大小以适合文本,而这是不应该的。

那么我怎样才能为工具控件、合成器或文本提供正确的大小并告诉它不要调整大小!?

public class TrimBarSearch {

@Inject
ISearchService searchService;

private Text txtSearch;
private Composite composite;

@Inject
public TrimBarSearch() {

}

@PostConstruct
public void createGui(final Composite parent) {

    parent.setLayoutData(new GridLayout(3, false));
    composite = new Composite(parent, SWT.NONE);

    Point xy = new Point(300, 15);
    Point sizeComposite = new Point(310, 25);

    composite.setLayout(new GridLayout(1, false));
    composite.setSize(sizeComposite);
    txtSearch = new Text(composite, SWT.FILL);
    txtSearch.setSize(xy);
    txtSearch.setText("");

    // TODO fix resizing-problem 
    parent.getShell().addListener(SWT.Resize, e -> {
        //maybe here?!
    });}

切勿尝试将布局与 setSize 混合使用 - 它不起作用,布局会覆盖您的尺寸。

相反,您可以在 GridData 中为文本指定宽度提示。而不是:

txtSearch.setSize(xy);

使用:

GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
data.widthHint = 300;
txtSize.setLayoutData(data);