【问题标题】:measuring SWT / JFace column header padding size测量 SWT / JFace 列标题填充大小
【发布时间】:2011-10-10 10:46:03
【问题描述】:

我在一个 Eclipse SWT 应用程序中有许多表。它们是 Table/TableViewer 表格,由标题、左下方的一行文字和一系列图形组成。除文本列外,还有 32 列,编号从 0 到 31。 在经典模式下的 Windows 7 和 XP 上,文本很好,但在 XP 正常模式下,它们被截断,因此它们看起来像 0 1 2 3 4 5 6 7 8 9 1. 1. 1. 1. 1. 等。无论哪种方式,文本显然都有足够的空间。

如果我只是将默认宽度设置为 28 而不是 25,正如我发现的那样,它们就可以了,但显然这不是很好,因为那时我需要更多空间用于 Windows 7 和 XP Classic 中的界面,已经可以了。 我尝试从 fontmetrics 获取平均宽度,但在所有模式下,文本返回为 5。我找不到任何减少填充的方法(这将是最好的方法),或者找出有多少填充(可以)。是否需要手动绘制列标题?

ps:对于 JFace / SWT,我们才刚刚开始,还不清楚其中的区别!

【问题讨论】:

    标签: swt eclipse-rcp jface


    【解决方案1】:

    调用TableColumn#pack() 应该为一列准确地提供显示其内容所需的宽度,而不会浪费任何空间或截断其内容。这包括列的标题文本。

    【讨论】:

    • 需要保留最大的列,显然(虽然不是在win7上)单位数列较小,但重绘后它现在可以在经典模式下在XP和XP之间调整大小。奇怪的是,在 Win7 中它比以前更大了,即使它没有截断,所以界面已经增长,但至少它是一致的,谢谢
    【解决方案2】:

    您应该使用 TableLayout 来更动态地计算表格标题的大小。以下博客文章是一个很好的起点:http://eclipsenuggets.blogspot.com/2007/11/one-of-less-prominent-novelties-in.html

    【讨论】:

    • 谢谢,但我不确定我是否在关注。除标签外,列不可调整大小,并且与窗口大小无关。在理想的世界中,它们需要尽可能小而不剪切文本。 TableLayout 似乎没有任何东西可以给我尽可能小的空间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多