• 11543阅读
  • 8回复

【提问】QLabel 怎么添加鼠标响应? [复制链接]

上一主题 下一主题
离线shengma
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-12
我在窗口里用QLabel做了一个图标按钮,目的是用鼠标按一下,改变按钮的图标。界面的ui我已经全部做好了,问题是怎样才能添加QLabel做的按钮的鼠标响应函数。
[ 此贴被XChinux在2005-09-12 09:35重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-09-12
mouseDoubleClickEvent ( QMouseEvent * )
mousePressEvent ( QMouseEvent * )
mouseReleaseEvent ( QMouseEvent *

这是三个对鼠标响应的事件。
做法是,从QLabel派生一个新类,在这个类里把上面你需要的函数自定义实现了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线shengma

只看该作者 2楼 发表于: 2005-09-12
窗口里有好多这样的按钮,我怎么知道是那个发出的鼠标事件呢?我要确切知道是那个按钮被触发了。在MFC里只要在某个对象力添加消息响应函数就可以了,Qt里好象没有这功能。还有uic自动生成的.h文件一修改就会自动恢复,无法添加自己的代码。我用的是Qt4 commercial for vs2003
离线XChinux

只看该作者 3楼 发表于: 2005-09-12
http://www.qtcn.org/bbs/read.php?tid=1426
这是你以前发的帖子,同一个问题


是参数QMouseEvent里有哪个按钮以及键盘组合产生的这个事件的信息的。
多看Qt Reference

Qt Designer设计器你点住QLabel部件放在窗体上,然后在这个部件上点右键弹出菜单,有一个菜单叫做“Promote to Custom Widget",用它可以产生一个新从QLabel继承的类,在里面添加响应代码。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线shengma

只看该作者 4楼 发表于: 2005-09-12
以前的问题我解决了,现在是我的界面已经设计好了,很复杂的,我不想重新再做。用你的方法派生一个子类,然后往主窗口里添加一个成员,这肯定可以解决问题,我的想法是能不能在 Qt Designer里直接解决,类似MFC那样直接添加响应函数。
离线XChinux

只看该作者 5楼 发表于: 2005-09-12
不能,即使能解决也不推荐
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线shengma

只看该作者 6楼 发表于: 2005-09-12
以前一直用MFC做项目,系统就用微软的windows,现在我们决定采用SGI图形工作站,忍痛要把软件移植到unix、linux系统上,才发现用MFC写的程序几乎一点都没用,要重新写。Qt才看了不到一个月,以后还要多向老大请教。
离线shengma

只看该作者 7楼 发表于: 2005-09-12
你的意思是不是Qt推荐纯代码的哪种编程?
离线XChinux

只看该作者 8楼 发表于: 2005-09-12
对。。在Designer设计器里,如果你需要对某个部件做扩展自定义的话,就使用弱个菜单,它会生成你需要的.h.cpp文件,然后你在那个文件里做扩展就可以了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个