如何在SWT中的固定宽度控制旁边进行水平扩展控制

时间:2011-12-28 08:36:32

标签: eclipse layout swt eclipse-rcp

我想完成以下任务:

horizontal expansion

其中一个固定宽度控件与填充可用空间的水平扩展控件相邻。

我已经可以使用GridLayout来完成垂直

vertical expansion

使用以下代码:

parent.setLayout(new GridLayout());

Button button1 = new Button(parent, SWT.PUSH);
button1.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
button1.setText("First");

Button button2 = new Button(parent, SWT.PUSH);
button2.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
button2.setText("Second");

有没有办法在不必明确指定列数的情况下执行水平版本?其他GUI工具包(例如Android,QT和GTK)确实有助于这样做。

目前我的横向解决方案是:

parent.setLayout(new GridLayout(2, false));

Button button1 = new Button(parent, SWT.PUSH);
button1.setLayoutData(new GridData(GridData.BEGINNING, GridData.FILL, false, true));
button1.setText("First");

Button button2 = new Button(parent, SWT.PUSH);
button2.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
button2.setText("Second");

1 个答案:

答案 0 :(得分:4)

您必须在GridLayout中指定列数。我不明白为什么这应该是一个问题(你似乎有什么工作)。根据您拥有的小部件数量,您可以根据需要计算列数。

This SWT Layout article非常好。如果要控制第一个对象的大小,请在widthHint中指定GridData