3

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

在此处输入图像描述

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_()
4

1 回答 1

1

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

{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_())

在此处输入图像描述

于 2017-01-22T02:34:38.567 回答