如何调整 QCheckBox 的大小

4
以下代码创建了一个带有两个复选框的单个对话框窗口。 第二个复选框使用setMaximumSize(8, 8)函数被限制为8x8像素的大小。 但是,似乎复选框小部件的较小尺寸并未应用于交叉图标。因此,该图标被复选框小部件的边界裁剪。如何确保交叉图标与复选框小部件成比例缩放?

enter image description here

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_()
1个回答

2
在这种情况下,最好使用样式表进行调整大小:
{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_())

enter image description here


当我这样做时,勾选框的大小保持不变,但是方框变小了。 - Erik Aronesty
1
@ErikAronesty 你使用的是哪种QStyle?几何特征取决于QStyle,尝试使用app.setStyle("fusion") - eyllanesc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接