我正在尝试支持我的应用程序的主题,但遇到了一个问题,我必须根据 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())
我不想使用此解决方法every单按钮用于every单一状态变化。你们以前遇到过这个问题吗?
感谢您花时间查看此内容。