【发布时间】:2020-06-02 19:14:19
【问题描述】:
对于我的生活,我无法弄清楚这一点。我有一个表格,在第 0 行第 0 行我有一个复选框。如果未单击该复选框,我想禁用第 1 行第 0 列。否则,如果单击,则启用第 1 行第 0 列。
为了禁用它,我一直在使用标志:
if not self.example_table.cellWidget(0,0).isChecked():
flags = QtCore.Qt.ItemFlags()
flags != QtCore.Qt.ItemIsEnabled
# flags != QtCore.Qt.ItemIsEditable (This also works to disable it)
self.example_table.item(1,0).setFlags(flags)
问题是,当我尝试使用逆进行 else 时,它不会重新启用单元格。这是我尝试过的。
else:
flags = QtCore.Qt.ItemFlags()
flags == QtCore.Qt.ItemIsEnabled #(still doesnt work)
# flags = QtCore.Qt.ItemIsEnabled (didnt work)
# flags == QtCore.Qt.ItemIsEditable (didnt work)
# flags = QtCore.Qt.ItemIsEditable (didnt work)
self.tblActivityInfo.item(1, 0).setFlags(flags)
无论我尝试什么,1,0 处的单元格仍然处于禁用状态。
self.example_table 只是一个 QtWidgets.QTableWidget(self.centralwidget)
【问题讨论】: