2017-11-27 18 views
0

QTableWidgetがフォーカスを失った場合に検証して、エントリのテキストを検証し、そのプログラムが自分のプログラムで有効でない場合はそのテキストを変更することができます。この場合inputMaskとにQLineEditを使用し、QTableWidgetを検証する

+0

QItemDelegateを使用して、そこを検証します。あなたが妥当性を確認したいと言ったら、私はあなたに例を挙げることができます。 – eyllanesc

+0

私は入力テキストが2桁の16進数であることを確認したいだけです – bril10

答えて

0

可能な解決策は、デリゲートを使用することで、デリゲートは、検証を担当している:

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_()) 
+0

ありがとう、それはすばらしく働いた!!!あなたは私の人生を救った! – bril10

関連する問題