我想要一个切换按钮来根据切换状态显示不同的图像。该功能在默认的 QApplication 样式(“WindowsVista”)中运行良好。但是 WindowsVista 风格很丑,我宁愿使用 Fusion 风格。不幸的是,图像在 Fusion Style 中没有改变。
编码:
from PyQt5.QtWidgets import (QApplication, QMainWindow, QPushButton,
QStyleFactory, QLabel)
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QSize
from PyQt5 import Qt, QtCore
import sys
class Test(QMainWindow):
def __init__(self, parent=None):
super(Test, self).__init__(parent=parent)
self.setGeometry(50,50,300,400)
icon = QIcon()
icon.addFile('red.png', state = QIcon.Off)
icon.addFile('green.png', state = QIcon.On)
button = QPushButton(parent = self)
button.setCheckable(True)
button.setIcon(icon)
button.setIconSize(QSize(150,150))
button.setGeometry(50,50,200,200)
verString = 'PyQt version: ' + Qt.PYQT_VERSION_STR + '\n'
verString += 'Qt version: ' + QtCore.qVersion()
print(verString)
label = QLabel(verString, parent = self)
label.setGeometry(50, 250, 200, 150)
if __name__ == '__main__':
app = QApplication(sys.argv)
#app.setStyle(QStyleFactory.create('fusion'))
app.setStyle(QStyleFactory.create('windowsvista'))
test = Test()
test.show()
sys.exit(app.exec_() )
WindowsVista 风格(左上按钮,右下按钮):
融合风格(左上按钮,右下按钮):