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);
我创建了一个 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);