Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyqt4在单击复选框空间以外的空间时单击复选框_Python_Python 2.7_Pyqt_Pyqt4_Qtreewidget - Fatal编程技术网

Python pyqt4在单击复选框空间以外的空间时单击复选框

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.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()
仅当我单击复选框空格时,才会选中该复选框。 图片里有一个圆圈。 我想通过单击行中的任意位置进行检查。这是图片中的箭头。我该怎么办?请帮帮我

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

作为你的答案,我进行了调整,但它显示了一个错误

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。我不明白为什么我认为这个答案是正确的,请向我解释。我上传了请检查它。我认为事件是冲突的。