如何调整 QCheckBox 的大小

How to resize QCheckBox

下面的代码创建了一个 Dialog window 和两个 checkboxes。 第二个复选框被限制为 8x8px 大小,具有 setMaximumSize(8, 8) 功能。 但看起来较小尺寸的复选框小部件并未应用于十字图标。所以图标被复选框小部件的边界剪裁。如何确保十字图标与复选框小部件成比例缩放?

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])

panel=QtGui.QDialog()
panel.setLayout(QtGui.QVBoxLayout())

checkbox1 = QtGui.QCheckBox()
panel.layout().addWidget(checkbox1)

checkbox2 = QtGui.QCheckBox()
checkbox2.setMaximumSize(8, 8)
panel.layout().addWidget(checkbox2)

panel.show()
app.exec_()

在这种情况下,最好使用样式表调整大小:

{your QCheckbox}.setStyleSheet("QCheckBox::indicator { width: npx; height: mpx;}")

完整代码:

import sys

from PyQt4 import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)

    panel = QtGui.QDialog()
    panel.setLayout(QtGui.QVBoxLayout())

    checkbox1 = QtGui.QCheckBox("normal1")
    panel.layout().addWidget(checkbox1)

    checkbox2 = QtGui.QCheckBox("small")
    checkbox2.setStyleSheet("QCheckBox::indicator { width: 10px; height: 10px;}")
    panel.layout().addWidget(checkbox2)

    checkbox1 = QtGui.QCheckBox("normal2")
    panel.layout().addWidget(checkbox1)

    panel.show()
    sys.exit(app.exec_())