求助:关于QPushButton 焦点事件的捕获

bobbypapa 2010-09-17 09:25:52
我创建了一个继承QWidegt的A类,在A类里面有一个QMessageBox类的成员对象,我们暂叫它msgBox,msgBox的按钮是我自己定义的,是添加的两个QPushutton类的对象button_ok,button_cancel,为了美观,我给两个按钮分别加了两个图片,目的是为了当按钮处于焦点时,显示高亮图片,不处于焦点时,显示暗淡的图片。可是如何在A类里面捕获msgBox中两个按钮的焦点事件呢?我试了一下不行,哪位大侠指点一下阿,小弟多谢啦!!!
...全文
609 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobbypapa 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dxms8 的回复:]

改成focus就行了
[/Quote]
我试试
bobbypapa 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dxms8 的回复:]

引用 6 楼 bobbypollo 的回复:
引用 5 楼 dxms8 的回复:

button->setStyleSheet(
"QPushButton {border-image: url(:/res/xx/a1.PNG); }"
"QPushButton:hover {border-image: url(:/res/xx/a2.PNG); }");
好吧,虽然我忘记了,可是我去……
[/Quote]
大哥我太笨了,你帮我查下吧,好了咱就结贴给分哈
dxms8 2010-09-17
  • 打赏
  • 举报
回复
改成focus就行了
dxms8 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bobbypollo 的回复:]
引用 5 楼 dxms8 的回复:

button->setStyleSheet(
"QPushButton {border-image: url(:/res/xx/a1.PNG); }"
"QPushButton:hover {border-image: url(:/res/xx/a2.PNG); }");
好吧,虽然我忘记了,可是我去查了下,hover这个就是拿到鼠标在当前butto……
[/Quote]
去网上查查吧,应该就是改下hover这个关键字就行。。
bobbypapa 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dxms8 的回复:]

button->setStyleSheet(
"QPushButton {border-image: url(:/res/xx/a1.PNG); }"
"QPushButton:hover {border-image: url(:/res/xx/a2.PNG); }");
好吧,虽然我忘记了,可是我去查了下,hover这个就是拿到鼠标在当前button上事件的关键字了。
[/Quote]
嘿嘿,有点意思了,那键盘输入焦点是不是也可以像鼠标一样实现呢?我不用鼠标,捕获的是键盘焦点
dxms8 2010-09-17
  • 打赏
  • 举报
回复
button->setStyleSheet(
"QPushButton {border-image: url(:/res/xx/a1.PNG); }"
"QPushButton:hover {border-image: url(:/res/xx/a2.PNG); }");
好吧,虽然我忘记了,可是我去查了下,hover这个就是拿到鼠标在当前button上事件的关键字了。
bobbypapa 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dxms8 的回复:]

引用 2 楼 bobbypollo 的回复:
引用 1 楼 dxms8 的回复:

button_ok->setStyleSheet();
button_cancel->setStyleSheet();
可以用这个函数来设定事件,具体的lz可以查一查,里面有鼠标移到button上的处理的,具体我记不清了,呵呵~~

这个函数只是可以用来设置背景图片的吧?当焦点在这个按钮上时显示图片……
[/Quote]
我的困惑不是怎么改变图片,而是何时改变图片,我无法捕获按钮的焦点事件,你知道怎么弄不?
dxms8 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bobbypollo 的回复:]
引用 1 楼 dxms8 的回复:

button_ok->setStyleSheet();
button_cancel->setStyleSheet();
可以用这个函数来设定事件,具体的lz可以查一查,里面有鼠标移到button上的处理的,具体我记不清了,呵呵~~

这个函数只是可以用来设置背景图片的吧?当焦点在这个按钮上时显示图片1,不在这个按钮时显示图片2,这个怎么弄阿?
[/Quote]
那你觉得高亮应该怎么实现呢?设置背景图片是一种最容易的实现方法。你只需要两张图片,换着来就可以实现了
bobbypapa 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dxms8 的回复:]

button_ok->setStyleSheet();
button_cancel->setStyleSheet();
可以用这个函数来设定事件,具体的lz可以查一查,里面有鼠标移到button上的处理的,具体我记不清了,呵呵~~
[/Quote]
这个函数只是可以用来设置背景图片的吧?当焦点在这个按钮上时显示图片1,不在这个按钮时显示图片2,这个怎么弄阿?
dxms8 2010-09-17
  • 打赏
  • 举报
回复
button_ok->setStyleSheet();
button_cancel->setStyleSheet();
可以用这个函数来设定事件,具体的lz可以查一查,里面有鼠标移到button上的处理的,具体我记不清了,呵呵~~

21,490

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧