我在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等,但无法使用它。
有没有办法为小部件选择焦点样式?
......还是有其他方法可以做到这一点吗?
答案 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将实现自定义焦点事件处理)