当 QPushButton 具有焦点时如何更改它的图标?

发布于 2024-08-07 03:48:42 字数 460 浏览 5 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黯然 2024-08-14 03:48:42

您不能直接在按钮上设置一个样式表,也不能在父窗口小部件上设置一个样式表。优先选择按钮之一。试试这个:

 navButton->setStyleSheet("QPushButton { background-color:red; } QPushButton:focus { background-color:blue; }");

You can't set one stylesheet directly on the button, and one on the parent widget. The button one will be prefered. Try this:

 navButton->setStyleSheet("QPushButton { background-color:red; } QPushButton:focus { background-color:blue; }");
微凉徒眸意 2024-08-14 03:48:42

我不能说任何关于通过样式表执行此操作的信息,但您可以使用以下方法:

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)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文