我在 PyQt 和 Python 中的复选框出现问题
Issue with my Check Box in PyQt and Python
我有一个名为 "selectAllCheckBox" 的复选框。当处于选中状态时,列表视图中的所有复选框(动态创建)应更改为选中状态,当 "selectAllCheckBox" 复选框处于未选中状态时,所有动态创建的复选框应更改为未选中状态。
self.dlg.selectAllCheckBox.stateChanged.connect(self.selectAll)
def selectAll(self):
"""Select All layers loaded inside the listView"""
model = self.dlg.DatacheckerListView1.model()
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable() and item.checkState() == QtCore.Qt.Unchecked:
item.setCheckState(QtCore.Qt.Checked)
以上代码的作用是使列表视图中的动态复选框变为选中状态,即使 "SelectAllCheckBox" 处于未选中状态。请帮助我如何使用 python 解决此问题。是否可以在信号中做任何事情,例如当复选框为 "checked" 或 "unchecked" 以连接到插槽而不是 stateChanged 时?
中的stateChanged signal sends the checked state,所以slot可以重写为:
def selectAll(self, state=QtCore.Qt.Checked):
"""Select All layers loaded inside the listView"""
model = self.dlg.selectAllCheckBox.model()
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable():
item.setCheckState(state)
(注意:如果列表视图中的所有行都有复选框,则可以省略 isCheckable
行)
我有一个名为 "selectAllCheckBox" 的复选框。当处于选中状态时,列表视图中的所有复选框(动态创建)应更改为选中状态,当 "selectAllCheckBox" 复选框处于未选中状态时,所有动态创建的复选框应更改为未选中状态。
self.dlg.selectAllCheckBox.stateChanged.connect(self.selectAll)
def selectAll(self):
"""Select All layers loaded inside the listView"""
model = self.dlg.DatacheckerListView1.model()
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable() and item.checkState() == QtCore.Qt.Unchecked:
item.setCheckState(QtCore.Qt.Checked)
以上代码的作用是使列表视图中的动态复选框变为选中状态,即使 "SelectAllCheckBox" 处于未选中状态。请帮助我如何使用 python 解决此问题。是否可以在信号中做任何事情,例如当复选框为 "checked" 或 "unchecked" 以连接到插槽而不是 stateChanged 时?
中的stateChanged signal sends the checked state,所以slot可以重写为:
def selectAll(self, state=QtCore.Qt.Checked):
"""Select All layers loaded inside the listView"""
model = self.dlg.selectAllCheckBox.model()
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable():
item.setCheckState(state)
(注意:如果列表视图中的所有行都有复选框,则可以省略 isCheckable
行)