2017-04-06 53 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