只允许 QTableWidget 列中的值
Only allow values in a QTableWidget column
如果我有一个非常简单的 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
)用户只能输入值而不能输入字符串?
您可以使用类似的方法,但我认为会有更好的解决方案。
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))
如果我有一个非常简单的 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
)用户只能输入值而不能输入字符串?
您可以使用类似的方法,但我认为会有更好的解决方案。
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))