SWT TabFolder:TabItem 太多时如何自动压缩
SWT TabFolder: How do you automatically compress TabItems when there are too many
我有一个 TabFolder,可以在其中动态创建 TabItems。当您的内容超出屏幕大小时,我希望选项卡能够像在浏览器中一样进行压缩,但除非我添加水平滚动条,否则它们只会继续向屏幕右侧扩展。有没有办法让它们像那样自动压缩?
TabFolder tabsComposite = new TabFolder(builder, SWT.NONE);
tabsComposite.setLayout(new GridLayout(1, false));
GridData tabsLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tabsComposite.setLayoutData(tabsLayoutData);
这些是通过在另一种方法中单击按钮创建的,并且可以创建任意数量的
TabItem item = new TabItem(tabsComposite, SWT.NONE);
tableComposite = new Composite(parent, SWT.BORDER);
GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tableComposite.setLayoutData(tableLayoutData);
GridLayout tableLayout = new GridLayout(1, false);
tableComposite.setLayout(tableLayout);
item.setText(nameText.getText());
如@greg-449 所述,您可以使用 CTabFolder
完成此操作。默认情况下,CTabFolder
在压缩时将显示不少于 20 characters,因此如果选项卡标题不够长,您可能没有注意到此默认行为。
如果你想改变这个值,你可以调用CTabFolder.setMinimumCharacters(int)
。
默认行为:
有了新的最小集:
我有一个 TabFolder,可以在其中动态创建 TabItems。当您的内容超出屏幕大小时,我希望选项卡能够像在浏览器中一样进行压缩,但除非我添加水平滚动条,否则它们只会继续向屏幕右侧扩展。有没有办法让它们像那样自动压缩?
TabFolder tabsComposite = new TabFolder(builder, SWT.NONE);
tabsComposite.setLayout(new GridLayout(1, false));
GridData tabsLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tabsComposite.setLayoutData(tabsLayoutData);
这些是通过在另一种方法中单击按钮创建的,并且可以创建任意数量的
TabItem item = new TabItem(tabsComposite, SWT.NONE);
tableComposite = new Composite(parent, SWT.BORDER);
GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tableComposite.setLayoutData(tableLayoutData);
GridLayout tableLayout = new GridLayout(1, false);
tableComposite.setLayout(tableLayout);
item.setText(nameText.getText());
如@greg-449 所述,您可以使用 CTabFolder
完成此操作。默认情况下,CTabFolder
在压缩时将显示不少于 20 characters,因此如果选项卡标题不够长,您可能没有注意到此默认行为。
如果你想改变这个值,你可以调用CTabFolder.setMinimumCharacters(int)
。
默认行为:
有了新的最小集: