2017-04-06 55 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),用戶可以只有輸入值而不是字符串?

+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