如何在有焦点时更改QPushButton图标?

时间:2009-10-07 11:30:50

标签: css qt s60

我在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等,但无法使用它。

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

我无法通过样式表说明这一点,但您可以使用下一种方法:

1)对QPushButton进行子类化,并重新实现focusInEvent和focusOutEvent(受保护的成员)

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