调整标签大小以适合内容
Resizing label to fit content
场景是这样的:
我正在创建一个小部件,它将显示一个文本,然后是一个进度条。
为此创建一个 Composite
container = new Composite(parent, SWT.BORDER);
container.setLayoutData(layoutData);
container.setLayout(new GridLayout(1, true));
为此我添加了一个Label
messageText = new Label(container, SWT.WRAP | SWT.BORDER | SWT.CENTER);
messageText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
后面是一个复合的拿着进度条的:
final Composite progressContainer = new Composite(container, SWT.BORDER);
progressContainer
.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
这是结果:
我希望标签能够增长到能够包含全文的程度。我一直在尝试按照 this post 的说明进行操作,但是,我一定是遗漏了一些东西,因为我无法实现所需的行为。
感谢您的输入。
您指定的 GridData
使用所有可用的水平 space 但垂直 space 仅使用为控件计算的初始大小。
要使用所有可用的垂直 space 使用:
messageText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
请注意,您还指定 progressContainer
也应该获取所有可用的 space - 这可能不是您想要的,因此您可能还需要更改它。可能:
progressContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
如果您希望消息文本在您更改需要调用的文本时调整大小
container.layout(true);
设置新文本后强制重新计算尺寸。使用您原来的 GridData
值。
场景是这样的:
我正在创建一个小部件,它将显示一个文本,然后是一个进度条。
为此创建一个 Composite
container = new Composite(parent, SWT.BORDER);
container.setLayoutData(layoutData);
container.setLayout(new GridLayout(1, true));
为此我添加了一个Label
messageText = new Label(container, SWT.WRAP | SWT.BORDER | SWT.CENTER);
messageText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
后面是一个复合的拿着进度条的:
final Composite progressContainer = new Composite(container, SWT.BORDER);
progressContainer
.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
这是结果:
我希望标签能够增长到能够包含全文的程度。我一直在尝试按照 this post 的说明进行操作,但是,我一定是遗漏了一些东西,因为我无法实现所需的行为。
感谢您的输入。
您指定的 GridData
使用所有可用的水平 space 但垂直 space 仅使用为控件计算的初始大小。
要使用所有可用的垂直 space 使用:
messageText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
请注意,您还指定 progressContainer
也应该获取所有可用的 space - 这可能不是您想要的,因此您可能还需要更改它。可能:
progressContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
如果您希望消息文本在您更改需要调用的文本时调整大小
container.layout(true);
设置新文本后强制重新计算尺寸。使用您原来的 GridData
值。