python 如何显示已 checkin 的复选框

标签 python pyqt pyqt4

我有一个带有许多复选框的 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( 将 clicked 信号连接到 QCheckBoxsetChecked(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_())

关于python 如何显示已 checkin 的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173728/

相关文章:

python - 以编程方式检测图像是否有边框(返回 bool 值)

python - 是否可以在自制的网络应用程序中单击?

python - 如何删除网格布局小部件内的所有小部件并以相同的顺序重新创建所有小部件

python - Qt中两个MainWindow()之间的通信

python - 使用 QtWebKit 在内存中渲染多个网页在第二页上中断,为什么?

python - Jupyter 笔记本无法在 VS Code 中打开

python - 为什么 pipenv 需要 Pipfile 和 Pipfile.lock?

python - 获取 QListWidget 中选定复选框的索引

python - 如何在 QLineedit 完成器中删除光标

python - 按空格拆分列表列表中的字符串