我正在尝试为我的应用程序支持主题,我遇到了一个问题,我必须根据 QPushButton 的状态(默认、悬停、按下等)更改图标。这是我用来设置 QPushButton 图标的方法:
QPushButton#playButton {
qproperty-icon: url(":/light/icons/play_light.png");
}
因为悬停状态使用的背景需要我的深色主题中的图标,所以我尝试使用以下方法将其更改为另一个:
QPushButton#playButton:hover {
qproperty-icon: url(":/dark/icons/play_dark.png");
}
当我这样做时,play_light.png
会按原样显示,但不会更改为play_dark.png
状态更改。
在我的 Python 代码中,播放按钮在播放时变为停止按钮,因此在我的风格中,我使用自定义属性将其设置为该图标:
QPushButton#playButton[isPlaying="true"] {
qproperty-icon: url(":/light/icons/stop_light.png");
}
这对我来说也不会改变。所以,我在网上找到了一些代码来重置按钮的样式,如下所示:
self.ui.playButton.setProperty('isPlaying', not isEnable)
self.ui.playButton.setStyle(qApp.style())
我不想为每个状态更改的每个按钮使用此解决方法。你们以前遇到过这个问题吗?
感谢您花时间看这个。