为复选框的未选中指标设置皮肤可以通过QSS(Qt Style Sheets)来实现。在PyQt5中,可以通过样式表(stylesheet)来定义QSS。
以下是实现过程:
- 导入PyQt5的QtWidgets库
from PyQt5 import QtWidgets
- 创建QCheckBox对象
checkBox = QtWidgets.QCheckBox('Checkbox', self)
- 使用setObjectName()方法为对象设置名称,便于后续通过名称定位对象
checkBox.setObjectName('myCheckBox')
- 使用setStyleSheet()方法为对象设置样式表
checkBox.setStyleSheet('''
QCheckBox#myCheckBox::indicator:unchecked {
border: 2px solid #aaa;
width: 10px;
height: 10px;
}
''')
在上述代码中,使用QSS的语法为QCheckBox#myCheckBox::indicator:unchecked
。其中,“#myCheckBox”为第3步中设置的名称,“::indicator:unchecked”表示未选中的复选框指标。在这个指标下,可以设置复选框未选中时的样式,如border: 2px solid #aaa;
可以设置边框颜色和宽度,“width: 10px;height: 10px;”可以设置宽度和高度。
- 运行程序,复选框未选中时即可看到样式表设置的效果。
示例1:
from PyQt5 import QtWidgets
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
checkBox = QtWidgets.QCheckBox('Checkbox', self)
checkBox.setObjectName('myCheckBox')
checkBox.setStyleSheet('''
QCheckBox#myCheckBox::indicator:unchecked {
border: 2px solid #aaa;
width: 10px;
height: 10px;
}
''')
layout = QtWidgets.QVBoxLayout()
layout.addWidget(checkBox)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
mainWindow = MainWindow()
app.exec_()
示例2:
from PyQt5 import QtWidgets
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
checkBox1 = QtWidgets.QCheckBox('Checkbox1', self)
checkBox1.setObjectName('myCheckBox1')
checkBox1.setStyleSheet('''
QCheckBox#myCheckBox1::indicator:unchecked {
border: 2px solid #aaa;
width: 10px;
height: 10px;
}
''')
checkBox2 = QtWidgets.QCheckBox('Checkbox2', self)
checkBox2.setObjectName('myCheckBox2')
checkBox2.setStyleSheet('''
QCheckBox#myCheckBox2::indicator:unchecked {
border: 2px solid #bbb;
width: 15px;
height: 15px;
}
''')
layout = QtWidgets.QVBoxLayout()
layout.addWidget(checkBox1)
layout.addWidget(checkBox2)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
mainWindow = MainWindow()
app.exec_()
在示例2中,创建了两个复选框对象,并分别为它们设置了不同的名称和样式表,可以看到复选框的未选中指标的样式也是不同的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 为复选框的未选中指标设置皮肤 - Python技术站