当 QPushButton 具有焦点时如何更改它的图标?
我在 S60 Qt 应用程序中使用 QPushButton。
我希望按钮图标在获得焦点时发生变化。
我已经尝试过这个......
navButton->setStyleSheet("background-image: url(c:/Data/navArrowsNotSelected.png);");
setStyleSheet("DoubleViewWidget QPushButton:focus {background-image: url(c:/Data/navArrowsSelected.png); border: 2px solid yellow}");
但是背景图像不会随着焦点的变化而改变。
我还尝试过其他方法,使用 QPalette 等,但无法使其工作。
有没有办法为小部件选择焦点样式?
...或者还有其他方法可以做到这一点吗?
I'm using a QPushButton in an S60 Qt app.
I want the button icon to change when it has focus.
I've tried this...
navButton->setStyleSheet("background-image: url(c:/Data/navArrowsNotSelected.png);");
setStyleSheet("DoubleViewWidget QPushButton:focus {background-image: url(c:/Data/navArrowsSelected.png); border: 2px solid yellow}");
...but the background image doesn't change with focus.
I've also tried other approaches, using QPalette, etc., but can't get this to work.
Is there a way to select a focus style for a widget?
...or is there another way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不能直接在按钮上设置一个样式表,也不能在父窗口小部件上设置一个样式表。优先选择按钮之一。试试这个:
You can't set one stylesheet directly on the button, and one on the parent widget. The button one will be prefered. Try this:
我不能说任何关于通过样式表执行此操作的信息,但您可以使用以下方法:
1)子类化 QPushButton,并重新实现 focusInEvent 和 focusOutEvent (受保护的成员)
2)另一种方法是执行“void QPushButton::installEventFilter ( QObject *按钮实例上的filterObj)”(filterObj将实现自定义焦点事件处理)
I can't say anything about doing this through stylesheet, but you can use next approaches:
1) Subclassing QPushButton, and reimplement focusInEvent and focusOutEvent (protected members)
2) Another approach, is to do "void QPushButton::installEventFilter ( QObject * filterObj )" on Push Button instance (filterObj will implement custom focus events handling)