如果用户更改其中的文本,我需要更改QTableWidget中某个单元格的字体,即使该文本与默认文本相同,也要更改它。
我过去经常使用表格中的itemChanged信号来进行此类操作,但由于在用户键入完全相同的文本时该信号不会升高,因此我陷入了困境。
item = QtWidgets.QTableWidgetItem("42")
self.my_table.setItem(0, 0, item)
self.my_table.itemChanged.connect(self.update)
def update(self, cell):
print("update")
self.my_table.itemChanged.disconnect(self.update)
font = cell.font()
if cell.text() == "":
cell.setText("42")
font.setUnderline(False)
else:
font.setUnderline(True)
cell.setFont(font)
self.my_table.itemChanged.connect(self.update)
知道:
情况1:
情况2:
为什么不呢? :
因为如果用户键入完全相同的内容,则不会引发ItemChanged信号。
我应该使用另一个信号吗? (找不到符合我需要的东西)
还有另一种方法吗?
为什么尝试这样做有道理? :
用户希望在默认值和固定为某个值的值之间进行区别(并且不关心该固定值是否为默认值,因为默认值可能会更改)。 br />
另外,如果用户要将值重新设置为默认值,则可以清空单元格。