Python pyqt4在单击复选框空间以外的空间时单击复选框
我做了一个小部件。并在列表中添加了复选框。 所以,我做了下面的代码。self.tableView只是一个空框Python pyqt4在单击复选框空间以外的空间时单击复选框,python,python-2.7,pyqt,pyqt4,qtreewidget,Python,Python 2.7,Pyqt,Pyqt4,Qtreewidget,我做了一个小部件。并在列表中添加了复选框。 所以,我做了下面的代码。self.tableView只是一个空框 self.tree = QtGui.QTreeWidget(self.tableView) self.tree.setGeometry(QtCore.QRect(0, 0, 471, 131)) self.tree.headerItem().setText(0, "No") self.tree.headerItem().setText(1, "Header") self.checkL
self.tree = QtGui.QTreeWidget(self.tableView)
self.tree.setGeometry(QtCore.QRect(0, 0, 471, 131))
self.tree.headerItem().setText(0, "No")
self.tree.headerItem().setText(1, "Header")
self.checkList = []
for i in range(0, len(header)):
self.checkList.append(QtGui.QTreeWidgetItem(self.tree))
self.checkList[i].setText(0, "{}".format(str(i+1)))
self.checkList[i].setText(1, "{}".format(header[i]).decode("utf-8"))
self.checkList[i].setFlags(self.checkList[i].flags() | QtCore.Qt.ItemIsTristate | QtCore.Qt.ItemIsUserCheckable)
self.checkList[i].setCheckState(0, QtCore.Qt.Unchecked)
self.tree.show()
仅当我单击复选框空格时,才会选中该复选框。
图片里有一个圆圈。
我想通过单击行中的任意位置进行检查。这是图片中的箭头。我该怎么办?请帮帮我
=========================================================================
作为你的答案,我进行了调整,但它显示了一个错误
def bringColumn(self):
self.tree = QtGui.QTreeWidget(self.tableView)
self.tree.setGeometry(QtCore.QRect(0, 0, 471, 131))
self.tree.headerItem().setText(0, "No")
self.tree.headerItem().setText(1, "Header")
# I added below code.
self.tree.itemClicked.connect(self.onItemClicked)
def onItemClicked(self, item):
item.setCheckState(0, QtCore.Qt.Unchecked if item.checkState(0) == QtCore.Qt.Checked else QtCore.Qt.Checked)
红色圆圈部分不工作。未选中。您必须连接单击的信号,这将返回按下的项和列,我们将使用项和setChecked方法
self.tree.itemClicked.connect(self.onItemClicked)
def onItemClicked(self, item, column):
item.setCheckState(0, QtCore.Qt.Unchecked if item.checkState(0) == QtCore.Qt.Checked else QtCore.Qt.Checked )
我有个问题。当我在单击复选框按钮时对此进行调整时,复选框按钮不起作用。仅单击除复选框空格以外的其他空格为工作。我认为事情已经破裂了。请帮助。通过显示您的代码并指出您的错误或错误消息来创建一个问题,请使代码符合be@Layla。我不明白为什么我认为这个答案是正确的,请向我解释。我上传了请检查它。我认为事件是冲突的。