代码之家  ›  专栏  ›  技术社区  ›  Manuel Selva

SWT树项目高度

  •  4
  • Manuel Selva  · 技术社区  · 14 年前

    有没有可能有一棵不同高度的SWT树?

    曼努埃尔

    3 回复  |  直到 6 年前
        1
  •  3
  •   True Soft    14 年前

    在SWT树或表中,项目不能有不同的高度。如果需要使每一行具有不同的高度,则必须使用自定义小部件,例如 KTable nebula grid 例如。

        2
  •  0
  •   Steve Perkins    14 年前

    好吧,你当然可以打电话来 setFont() TreeItem 有问题的,给它一个比另一个大的字体 树项 排。然而,这可能不是你想要的…在 Tree .

    另一个更为黑客的选择可能是使用 setImage() 方法对 树项 …为每一行设置白色(或其他)背景图像,其中较高的行使用的图像比较短的行大。

    第二种方法可以在不更改字体的情况下为您提供自定义行高,尽管您希望确保选择与系统默认背景颜色相同颜色的背景图像。也许你甚至可以创造 Image 对象以编程方式保存在内存中以确保这一点。

        3
  •  0
  •   Christoph Läubrich    6 年前

    至少在使用gtk的Linux下,以下内容使第一个treeitem比另一个更大:

    tree.addListener(SWT.MeasureItem, new Listener() {
        boolean first = true;
    
        public void handleEvent(Event event) {
            if (event.item instanceof TreeItem) {
                if (first) {
                    event.height = event.height * 3;
                    first = false;
                }
            }
        }
    });
    

    但似乎有一个树项目的最小规模,所以如果sou试图设置较小,它没有效果。