2010-10-04 64 views

回答

3

在SWT樹或表中,項目不能有不同的高度。如果您需要製作不同高度的每一行,則必須使用自定義小部件,例如KTablenebula grid

+0

這是寫在API參考中嗎?在您的評論旁邊,我找不到任何有關此信息。問候。 – 2016-10-26 08:45:36

+0

@SimonPA,我認爲這是不可能的,因爲操作系統的表不允許這樣做。 – 2016-10-26 16:34:19

0

嗯,你可以對有問題的TreeItem過程調用setFont(),並賦予它比通過其他TreeItem行使用較大的字體。但是,這可能不是你想要的......在Tree中有多種字體大小。

第二個更多的黑客替代方案可能是改爲使用setImage()方法TreeItem ...爲每行設置一個白色(或其他)背景圖像,較高的行使用比較短的行更大的圖像。

儘管您希望確定選擇與系統默認背景顏色相同顏色的背景圖像,但第二種方法可以在不更改字體的情況下爲您提供自定義行高。也許你甚至可以通過編程方式在內存中創建Image對象來確保這一點。

+0

圖像破解是一個不錯的主意。它工作嗎?我記得在前段時間嘗試實現類似的功能,從未找到可在所有平臺上使用的解決方案。這是所有SWT實現可能無法正常工作的黑客,因此請確保您仔細測試它。 – zvikico 2010-10-04 13:59:06

+0

這個解決方案是否真的爲每一行提供不同的高度?今天,我用Measure Listener嘗試了其他解決方案:它可以工作,但將所有行設置爲最高高度。爲什麼在使用不同尺寸的圖像時會有所不同? – 2010-10-04 15:01:01

+0

它不適用於macOS(10.13),我只是試了一下。所有行都相應地調整。我認爲操作系統的限制可能是像OmniOutliner這樣的應用程序擁有自己的樹實現的原因。 – Majakovskij 2018-02-16 17:37:43