当前位置:编程学习 > wap >>

Qt 实现类似Windows MFC CTreeCtrl的Tooltip属性

说来在windows mfc下实现,就是使用它的ToolTip属性就可以实现,


但是在Qt里面,有现成的方案?

目前我能想到的就如下方案,但是还有不能解决的部分...

在view里面控制,Model是数据,Delegate是编辑控件,而我要的是enter和leave时显示...

现在的难题是,
view如何得知item的rect...
view如何得知item文字区域的rect,或者文字区域前面的rect...因为这个需要判断文字是否被遮盖了....
view上对于item的enter和leave事件怎么样添加比较好呢?

刚学Qt,还望大虾们赐教. --------------------编程问答-------------------- 目前按照这个方式实现....
bool CVxTreeWidget::viewportEvent(QEvent* event)
{
if (event->type() == Qt::ToolTip)
{
QHelpEvent *e = static_cast<QHelpEvent*> (event);
QTreeWidgetItem* item = itemAt(e->pos());
if (isVisible() && !(item->text(0).isEmpty()))
{
QRect rt = itemWidget(item,0)->rect();
QToolTip::showText(rt.topLeft(),item->text(0),itemWidget(item,0),rt);
// QToolTip::showText(e->globalPos(),item->toolTip(0),((QWidget*)0),QRect());
return true;
}
//自己处理提示
}
return false;
}


但是会触发断言...
--------------------编程问答-------------------- QToolTip::showText(rt.topLeft(),item->text(0),itemWidget(item,0),rt);
将红色的部分去掉如何。 --------------------编程问答--------------------
引用 2 楼  的回复:
QToolTip::showText(rt.topLeft(),item->text(0),itemWidget(item,0),rt);
将红色的部分去掉如何。

我想浮现的位置能刚好对准原来所处的rect...单纯使用QTooltip已经实现了...效果一般.
还有俩个问题,如何计算当期控件的占用尺寸和可见尺寸
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,