用相同的值编辑单元格时,是否可以发出信号?

时间:2019-05-09 15:53:59

标签: python-3.x pyqt qtablewidget

如果用户更改其中的文本,我需要更改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)
  • 知道:

    • 单元格中的默认文本为“ 42”
    • 默认字体不是下划线,其他是
  • 情况1:

    • 用户类型为“ 3”->带下划线的文字
    • 用户类型为“ 42”->带下划线的文字
  • 情况2:

    • 用户键入“ 42”->文字加下划线

为什么不呢? :
因为如果用户键入完全相同的内容,则不会引发ItemChanged信号。

我应该使用另一个信号吗? (找不到符合我需要的东西)
还有另一种方法吗?

为什么尝试这样做有道理? :
用户希望在默认值和固定为某个值的值之间进行区别(并且不关心该固定值是否为默认值,因为默认值可能会更改)。 br /> 另外,如果用户要将值重新设置为默认值,则可以清空单元格。

0 个答案:

没有答案