• 9031阅读
  • 5回复

QToolTip的三问题. [复制链接]

上一主题 下一主题
离线jonike
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-26
关键词: 窗口按钮ToolTip
1。问题:我做了一个按钮,当鼠标移动上去的时候,让它立马显示ToolTip(不像普通的ToolTip要等上一两秒)另外,当鼠标移出这个按钮外面后,立马消失。如何实现。。。
2。问题:我现在想练习用PyQt写一个类似Maya的Hypershader的窗口。。如下图中的画面一样,当鼠标移动到线条上时弹出一个ToolTip,它会显示上游节点与下游节点的链接关系。。但你发现没它是以两个ToolTip的注释方式出现的。。这我该怎么办。

希望各位高人给讲讲。
离线jonike

只看该作者 1楼 发表于: 2010-07-26
不好意思,只有两个问题,标题打错了。。。 各位高人给我指导一下。 谢谢了。。
离线sbtree
只看该作者 2楼 发表于: 2010-07-26
重写enterEvent和leaveEvent可以解决这两个问题
windows 7 + VC++2008 + Qt4.5.2
离线jonike

只看该作者 3楼 发表于: 2010-07-26
sbtree兄弟,好像不行吧。
QGraphicsItem.hoverEnterEvent :
    QtGui.QToolTip.showText (QPoint, QString, QWidget widget = None)  #它要确定QGraphicsItem在场景中的坐标
QGraphicsItem.hoverLeaveEvent:
    QtGui.QToolTip.hideText ()
这两个函数重写确实可以,但我用的QGraphicsItem.setToolTip("aaa")这种方法写的,如果我用上面的方法,就得确定每个QGraphicsItem在场景中的坐标,相关麻烦,还得转坐标。

第二个问题怎么解决呢,两个ToolTip是分开的。。。
离线sbtree
只看该作者 4楼 发表于: 2010-07-27
引用第3楼jonike于2010-07-26 23:08发表的  :
sbtree兄弟,好像不行吧。
QGraphicsItem.hoverEnterEvent :
    QtGui.QToolTip.showText (QPoint, QString, QWidget widget = None)  #它要确定QGraphicsItem在场景中的坐标
QGraphicsItem.hoverLeaveEvent:
    QtGui.QToolTip.hideText ()
.......

你在graphics view的框架下就更简单了,直接重写grafichis item的hoverEnterEvent和hoverLeaveEvent。 坐标变换在graphics view的框架下都写好了,直接调用就可以了, mapFromXXX和mapToXXX,理论上把他们显示在任何地方都可以的。第二个问题无非是显示两个文本框,你完全可以在你的Item里面创建两个文本框,hover进入的时侯设置可见,退出的时候设置不可见就行了,位置当然可以由你自由决定
windows 7 + VC++2008 + Qt4.5.2
离线jonike

只看该作者 5楼 发表于: 2010-07-27
好的,谢谢你。我回家试试看。。哈哈。有思路就好办了。
快速回复
限100 字节
 
上一个 下一个