我正在编写一个Eclipse插件,它有一个悬停控件,由两个控件组成,一个在另一个之上:

我可以轻松计算大小提示的HTML查看器(BrowserInformationControl)

包含树的TreeViewer。

我已经用实际内容设置了我的树。但是,我无法找到一种方法来计算树的大小或渲染后的大小提示。

有帮助吗?

解决方案

根据 org.eclipse.swt.widgets.Tree ,这应该通过以下方式完成:

public Point computeSize(int wHint,
                     int hHint,
                     boolean changed)
  

控件的首选大小是最佳显示的大小。

     

宽度提示和高度提示参数允许调用者询问控制问题,例如<!>;给定特定宽度,控件需要多高才能显示所有内容?<!> quot;点击   为了表明调用者不希望约束特定维度,为提示传递常量SWT.DEFAULT。

     

如果更改的标志为真,则表示接收方的内容已更改,因此需要刷新包含控件的布局管理器可能保持的任何高速缓存。调整控件的大小时,更改的标志将为false,因此可以保留布局管理器缓存。


请注意,在Windows上,computeSize()的行为存在缺陷:请参阅消息和此错误:固定为eclipse 3.4M1并转发。

此消息<中使用getBound()的示例

使用<=>可能是另一个有趣的替代方案

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top