python如何在签入时显示复选框

python如何在签入时显示复选框,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我有一个带有许多复选框的GUI(在python中)。 用户应单击多个复选框以运行应用程序。 我想创建一个按钮,自动选择和“点击”一些预定义的复选框 我知道如何创建按钮,并且让应用程序“知道”复选框处于选中状态 但是,当查看GUI时,复选框为空,因此用户不知道选中了哪个复选框。 请参见下面的复选框定义: class Ui_Dialog(object): def setupUi(self, Dialog): QtCore.QObject.connect(self.legacy

我有一个带有许多复选框的GUI(在python中)。 用户应单击多个复选框以运行应用程序。 我想创建一个按钮,自动选择和“点击”一些预定义的复选框

我知道如何创建按钮,并且让应用程序“知道”复选框处于选中状态

但是,当查看GUI时,复选框为空,因此用户不知道选中了哪个复选框。 请参见下面的复选框定义:

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        QtCore.QObject.connect(self.legacyrunsens, 
        QtCore.SIGNAL(_fromUtf8("stateChanged(int)")), legacychecksens)

因此,我调用
legacychecksens(2)
,但在GUI上没有标记复选框。

解决方案包括通过
functools.partial()
单击的
信号连接到
QCheckBox
设置检查(True)
方法,在下面的部分中,我用
PySide4

from PyQt4 import QtCore, QtGui
from functools import partial


class Widget(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        lay = QtGui.QVBoxLayout(self)

        button = QtGui.QPushButton("Default")
        lay.addWidget(button)

        options = ["A", "B", "C", "D", "E", "F"]
        default = ["A", "B", "C"] 

        for option in options:
            checkbox = QtGui.QCheckBox(option)
            lay.addWidget(checkbox)
            if option in default:
                button.clicked.connect(partial(checkbox.setChecked, True))


if __name__ == '__main__':
    import sys

    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

PyQt4,PyQt5,PySide还是PySide2?我在用PyQt4我在用PyQt4@MosheGabay如果我的回答有助于您,请不要忘记将其标记为正确,如果您不知道如何做,请查看,这是表示感谢的最佳方式