[英]Remove SWT TreeItem image indent
我正在嘗試構建一個SWT樹,它在頂層有圖標但在下一層沒有。
有沒有辦法避免似乎留給我不使用的圖像的空白區域? 我嘗試使用以下代碼片段,但沒有做我想要的。
SWT.MeasureItem:
tree.addListener(SWT.MeasureItem, new Listener()
{
@Override
public void handleEvent(Event event)
{
TreeItem item = (TreeItem)event.item;
Image image = item.getImage();
if (image == null)
{
event.x -= 40;
}
}
});
SWT.PaintItem:
tree.addListener(SWT.PaintItem, new Listener()
{
@Override
public void handleEvent(Event event) {
TreeItem item = (TreeItem)event.item;
Image image = item.getImage();
if (image == null)
{
event.x -= 40;
}
}
});
在這兩種情況下,我只是希望文本可以在左側進一步繪制。
此行為來自本機控件,並且是特定於操作系統的(AFAIR,在Mac上您不會看到此問題)。 唉,沒有簡單的修復,但添加一些通用圖標(或根本不添加圖標)。
我自己做了一些調查。 根據尤金的回答,這似乎是本土行為。 有幾件值得注意的事情。
如果樹中的項目沒有圖標,則圖標不會留下任何空間。 但是,即使帶有圖標的單個項目也會導致所有項目留出圖標空間。
hacky解決方案可以實現如下:
這可能不適用於跨平台和跨系統字體,所以我決定忍受有圖標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.