1

我在 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 等,但无法使其正常工作。

有没有办法为小部件选择焦点样式?

...或者还有其他方法可以做到这一点吗?

4

2 回答 2

4

您不能直接在按钮上设置一个样式表,而在父小部件上设置一个样式表。按钮一将是首选。试试这个:

 navButton->setStyleSheet("QPushButton { background-color:red; } QPushButton:focus { background-color:blue; }");
于 2009-10-07T12:14:54.943 回答
0

我不能说通过样式表来做这件事,但你可以使用下面的方法:

1)继承QPushButton,重新实现focusInEvent和focusOutEvent(受保护的成员)

2)另一种方法,是对 Push Button 实例执行“void QPushButton::installEventFilter (QObject * filterObj)”(filterObj 将实现自定义焦点事件处理)

于 2009-10-07T12:19:10.567 回答