我有一个带有许多复选框的 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
信号连接到 QCheckBox
的 setChecked(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/