验证QTableWidget中的文本

问题描述 投票:0回答:1

我需要验证QTableWidget是否已失去焦点,因此我可以验证条目文本并更改其文本(如果它对我的程序无效)。

python python-3.x pyqt pyqt5 qtablewidgetitem
1个回答
0
投票

一种可能的解决方案是使用委托,委托负责验证,在这种情况下使用带有inputMask的QLineEdit:

class HexDelegate(QItemDelegate):
    def createEditor(self, parent, option, index):
        w = QLineEdit(parent)
        w.setInputMask("HH")
        return w

class App(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setLayout(QVBoxLayout())

       # Create table
        self.tableWidget = QTableWidget(self)
        self.layout().addWidget(self.tableWidget)
        self.tableWidget.setRowCount(4)
        self.tableWidget.setColumnCount(2)
        self.tableWidget.setItemDelegate(HexDelegate())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())
© www.soinside.com 2019 - 2024. All rights reserved.