2017-04-06 8 views
0

私は次のようにQTableWidget本当に簡単を持っている場合:のみ許可QTableWidget列の値

data = ['first_row', 'second_row', 'third_row'] 

qTable = self.dockwidget.tableWidget 
qTable.setRowCount(len(data)) 
qTable.setColumnCount(2) 

for row in range(len(data)): 
    for col in [0]: 
     item = QTableWidgetItem(str(data[row])) 
     qTable.setItem(row,col,item) 
    for col in [1]: 
     qTable.setItem(row,col,'0.1') 

はどうすれば(デフォルト値は0.1である)2番目の列になるように作ることができ、ユーザは文字列ではなく入力値のみ?

+0

値は整数を意味しますか? –

+0

@ErikŠťastný - 可能であれば理想的にフロートします:) – Joseph

+0

これを見てください:http://stackoverflow.com/questions/22708623/qtablewidget-only-numbers-permitted –

答えて

1

あなたはこのようなものを使うことができますが、もっと良い解決策があると思います。

self.ui.tableWidget.itemChanged.connect(self.item_changed) 

def item_changed(self, Qitem): 
    try: 
     test = float(Qitem.text()) 
    except ValueError: 
     Msgbox = QMessageBox() 
     Msgbox.setText("Error, value must be number!") 
     Msgbox.exec() 
     Qitem.setText(str(0.1)) 
+0

あなたの答えをありがとう、これをテストして、報告します:) – Joseph

+0

@Joseph答えは十分でしたか?それとも実装に問題がありますか? –

+0

これはいい解決策ですので、もう一度感謝します:) – Joseph

関連する問題