【问题标题】:Add spacer in Eclipse Toolbar在 Eclipse 工具栏中添加分隔符
【发布时间】:2019-06-20 16:35:11
【问题描述】:

我想在我的 Eclipse E4 应用程序的工具栏中添加一个左对齐(右对齐)项目。

Eclipse 中的工具栏项目默认情况下是不规则的,所以这是我想要实现的:

      toolbar
+------------------------------------------------+
| I1 |                      | I2 | I3 | ... | IN |
+------------------------------------------------+
      <-------------------->
              spacer?

由于I1I2 之间的间隔控件的影响,项目I1 将向左对齐(如果我首先理解了间隔的含义)。


I knowtrimbar 的项目之间带有 stretch 标记的 ToolControl 将用作间隔;但这不适用于工具栏

我还尝试按照我从this answer 阅读的说明在 plugin.xml 中添加工具栏元素作为扩展点。我不确定这是否根本不兼容 E4 或者我是否犯了一些错误。

想法?


可能与How do I add a spacer to an Eclipse RCP toolbar?重复

【问题讨论】:

  • 扩展点菜单内容仅适用于 Eclipse 3.x 兼容模式,将被纯 e4 RCP 完全忽略。
  • 我明白了,谢谢。但是有可能回到 3.x 吗?
  • 当前的 3.x 兼容模式只是 e4 有很多额外的代码,我不认为任何额外的代码可以做到这一点。我不记得原始的 3.x 代码是否还有其他内容,我对此表示怀疑。可以通过修改工具栏渲染器来做到这一点 - 但这是一项非常艰巨的工作。

标签: eclipse-rcp e4


【解决方案1】:

只需将ToolControl 添加到Toolbar 并使用这样的类作为控件:

public class SpacerControl
{
  public SpacerControl()
  {
    super();
  }


  @PostConstruct
  public void postConstruct(final Composite parent)
  {
    new Composite(parent, SWT.NONE)
      .setLayout(new FillLayout());
  }
}

【讨论】:

  • 谢谢格雷格,这实际上很有意义。我尝试了您的解决方案,但是我将ToolControl 放置在 之前 分隔符 ToolControl 仍然是右对齐的,并粘在所有其他项目上。
  • (清除持久化状态,实际创建间隔对象)
  • 我不太明白你想要什么。这段代码只是在工具项之间添加了一个空格,没有别的。
  • 我认为在工具栏内进行这样的拉伸是不可能的。进行拉伸的是 Trimbar 渲染器,它不会查看工具栏内部。
  • 好的,知道了。有那么一刻,我认为FillLayout 组件会占用可用空间。无论如何,作为一个丑陋的解决方法,我相信我可能会坚持在其布局数据中使用最小尺寸的 GridLayout(子)组合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
相关资源
最近更新 更多