我想完成以下任务:
其中一个固定宽度控件与填充可用空间的水平扩展控件相邻。
我已经可以使用GridLayout
来完成垂直:
使用以下代码:
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");
答案 0 :(得分:4)
您必须在GridLayout
中指定列数。我不明白为什么这应该是一个问题(你似乎有什么工作)。根据您拥有的小部件数量,您可以根据需要计算列数。
This SWT Layout article非常好。如果要控制第一个对象的大小,请在widthHint
中指定GridData
。