这是一个gridLayout,其中Available侧是Tree Viewer,Selected侧是ListViewer。现在我必须在右侧获得一个工具提示。这是我无法得到的。我正在开发一个现有的代码库,所以我无法弄清楚他们在哪一行添加了工具提示+我没有找到任何关键字,如工具提示或鼠标悬停。这是如何实现的呢? 我提到了一些代码。我相信答案应该只在这里。
availableViewer = new TreeViewer(resultsComposite, SWT.BORDER | this.getStyle());
availableViewer.setContentProvider(new ResAndResGroupTreeContentProvider());
availableViewer.setLabelProvider(SelectionItemLabelProvider.getInstance());
Tree availableResults = availableViewer.getTree();
GridData availableResultsGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
availableResultsGridData.widthHint = LIST_WIDTH_HINT;
availableResultsGridData.heightHint = LIST_HEIGHT_HINT;
availableResults.setLayoutData(availableResultsGridData);
availableViewer.getTree().addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetDefaultSelected(SelectionEvent e)
{
moveAvailableItemsToSelected();
}
});
这是selectionViewer的内容。
selectedViewer = new ListViewer(resultsComposite, SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER
| this.getStyle());
selectedViewer.setContentProvider(new ResAndResGroupTreeContentProvider());
selectedViewer.setLabelProvider(new SelectionItemLabelProvider());
org.eclipse.swt.widgets.List selectedResults = selectedViewer.getList();
GridData selectedResultsGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
selectedResultsGridData.widthHint = LIST_WIDTH_HINT;
selectedResultsGridData.heightHint = LIST_HEIGHT_HINT;
selectedResults.setLayoutData(selectedResultsGridData);
selectedViewer.addDoubleClickListener(new IDoubleClickListener()
{
@Override
public void doubleClick(DoubleClickEvent event)
{
moveSelectedItemsToAvailable();
}
});
selectedViewer.getList().addKeyListener(new KeyAdapter()
{
@Override
public void keyPressed(KeyEvent e)
{
if (e.character == SWT.CR)
{
moveSelectedItemsToAvailable();
}
}
});
selectedViewer.addSelectionChangedListener(new ISelectionChangedListener()
{
@Override
public void selectionChanged(SelectionChangedEvent event)
{
updateButtonsEnabled();
}
});
感谢。
答案 0 :(得分:2)
ListViewer
底层List
窗口小部件无法为每个项目显示不同的工具提示。
您可以为整个列表分配工具提示,如此
listViewer.getList().setTooltipText( "..." );
但是,如果您希望每个项目提供不同的工具提示,则必须使用TableViewer
。
您在左侧看到的是本机Windows工具提示,如果项目超出水平空间,则会显示该工具提示。 Table
(在Windows上)具有相同的行为,因此您不需要明确提供工具提示。
对于具有默认工具提示的控件,例如Windows上的Tree
,将工具提示设置为null
会替换默认值,导致不显示工具提示。