标题:【提问】QLabel 怎么添加鼠标响应?
作者:shengma
日期:2005-09-12 08:46
内容:
我在窗口里用QLabel做了一个图标按钮,目的是用鼠标按一下,改变按钮的图标。界面的ui我已经全部做好了,问题是怎样才能添加QLabel做的按钮的鼠标响应函数。
#1 [XChinux 09-12 09:15]
mouseDoubleClickEvent ( QMouseEvent * )
mousePressEvent ( QMouseEvent * )
mouseReleaseEvent ( QMouseEvent *
这是三个对鼠标响应的事件。
做法是,从QLabel派生一个新类,在这个类里把上面你需要的函数自定义实现了。
#2 [shengma 09-12 09:26]
窗口里有好多这样的按钮,我怎么知道是那个发出的鼠标事件呢?我要确切知道是那个按钮被触发了。在MFC里只要在某个对象力添加消息响应函数就可以了,Qt里好象没有这功能。还有uic自动生成的.h文件一修改就会自动恢复,无法添加自己的代码。我用的是Qt4 commercial for vs2003
#3 [XChinux 09-12 09:35]
http://www.qtcn.org/bbs/read.php?tid=1426
这是你以前发的帖子,同一个问题
是参数QMouseEvent里有哪个按钮以及键盘组合产生的这个事件的信息的。
多看Qt Reference
Qt Designer设计器你点住QLabel部件放在窗体上,然后在这个部件上点右键弹出菜单,有一个菜单叫做“Promote to Custom Widget",用它可以产生一个新从QLabel继承的类,在里面添加响应代码。
#4 [shengma 09-12 09:41]
以前的问题我解决了,现在是我的界面已经设计好了,很复杂的,我不想重新再做。用你的方法派生一个子类,然后往主窗口里添加一个成员,这肯定可以解决问题,我的想法是能不能在 Qt Designer里直接解决,类似MFC那样直接添加响应函数。
#5 [XChinux 09-12 09:49]
不能,即使能解决也不推荐