• 19732阅读
  • 9回复

QLabel 实现双击事件怎么实现? [复制链接]

上一主题 下一主题
离线dinotiger510
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-19
QLabel 没有双击事件信号。因此想请教,看有大虾知道么?

我想可能可以考虑采用qApp通过获取鼠标按钮点击来判断是否进行了双击,再判断对象是否所要的QLabel。这样应该能达到目的。

请知道的告知一声。谢谢。
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-19
子类化 QLabel,重载其成员函数

virtual void mouseDoubleClickEvent ( QMouseEvent * event )
离线rqzrqh

只看该作者 2楼 发表于: 2009-10-19
同意楼上的,但是最好添加一个双击信号,在mouseDoubleClickEvent ( QMouseEvent * event )判断是双击事件,然后发送双击信号。这样子的话就能把双击信号和QPushButton的clicked()信号同等对待了。
离线dinotiger510
只看该作者 3楼 发表于: 2009-10-20
谢谢楼上2位!

我现在用的方法是eventFilter.已经实现对一个label实现双击事件。

楼上的方法我也想过。但我是用的Qt Creator   是qt4.5  。而且我的label是界面用以显示图片的。进行了布局。所以不好在代码中生成label。所以重构label就不行了。。。

再次感谢。
离线dbzhang800

只看该作者 4楼 发表于: 2009-10-20
引用第3楼dinotiger510于2009-10-20 09:04发表的  :
但我是用的Qt Creator   是qt4.5  。而且我的label是界面用以显示图片的。进行了布局。所以不好在代码中生成label。所以重构label就不行了。。。
.......


其实这个因果关系不成立,把结论中的“不”字去掉就可以了
离线318065268
只看该作者 5楼 发表于: 2009-10-20
无需劳eventFilter大驾,在你对这些控件进行管理的外层的类里面实现双击鼠标事件函数,然后判断你的鼠标点击的位置,是否位于你的label所在区域。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
离线dinotiger510
只看该作者 6楼 发表于: 2009-10-20
可能是4楼没理解到我的意思,也可能是我没4楼的高度。认识不够清楚,毕竟对于QT我还是新手。我考虑过直接修改QT源代码QLabel。
5楼的方法我觉得和用eventFilter差不多。而且用eventFilter我认为更方便。难道eventFilter会有问题么?

不过还是非常感谢楼上各位。欢迎多交流。

我现在又遇到一个问题。还是QLabel显示图片。
我在VC下通过setPixmap()函数对一个QLabel进行图片设置,没有问题,图片正确显示。然后在QT Creator中运行,以及在Linux下编译运行,都不能正确显示出图片。然而直接再Qt Creator中通过界面设计直接添加图标,生成的代码也是通过setPixmap函数设置图片。但这样就是对的。

所以我也很困惑。希望各位有知道的告知一声。相信也有人遇到过我这样的情况。
离线rqzrqh

只看该作者 7楼 发表于: 2009-10-20
promote,就是把原有的有的QLABEL变为自定义的类
离线318065268
只看该作者 8楼 发表于: 2009-10-23
Qt Creator的designer添加的图片路径会不对,你可以直接检查一下它生成的源码就知道了。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
离线leaves
只看该作者 9楼 发表于: 2009-10-25
嗯,是路径不对,我也遇到过
快速回复
限100 字节
 
上一个 下一个