Как сделать горизонтально расширяющийся элемент управления рядом с элементом управления с фиксированной шириной в SWT - PullRequest
3 голосов
/ 28 декабря 2011

Я бы хотел сделать следующее:

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 Ответ

4 голосов
/ 28 декабря 2011

Вы должны указать количество столбцов в GridLayout.Я не понимаю, почему это должно быть проблемой (и что у вас, похоже, работает).Вы можете вычислить количество столбцов по мере необходимости, в зависимости от того, сколько у вас виджетов.

Эта статья по макету SWT довольно хороша.Если вы хотите контролировать размер вашего первого объекта, укажите widthHint в GridData.

...