pyqt4 单击复选框 space 以外的 space 时单击复选框

pyqt4 Clicked on a checkbox when clicking a space other than the checkbox space

我制作了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.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()

只有在我点击复选框 space 时才会被选中。 ( 它是图片内的一个圆圈。) 我想通过单击该行中的任意位置来进行检查。(这是图片中的箭头。)我必须做什么?请帮助我。

============================================= ============================

根据您的回答,我进行了调整,但它显示了一个错误。

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)

红圈部分无效。未检查。

你必须连接点击信号,这个returns项目和按下的列,我们将使用项目和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 )