我想显示用逗号分隔的大量数字,例如 123,000 而不是 123000,但这样做我必须将其变成一个字符串,在该字符串上排序无法按预期工作。
问问题
1457 次
2 回答
0
如果您移动到 QTableView 和 QStandardItemModel,而不是 QTableWidget,它会更容易一些 - 不知道这是否适合您。
然后您可以指定一个不同于 DisplayRole 的 SortRole。像这样(希望 Python 是可读的——我使用 PySide)
tableView = QtGui.QTableView(self)
tableView.setSortingEnabled(True)
model = QtGui.QStandardItemModel(3,2,self)
model.setSortRole(QtCore.Qt.UserRole)
for r in range(3):
for c in range(2):
item = QtGui.QStandardItem(["1,000","200","100"][r])
item.setData(QtCore.Qt.UserRole,[1000,200,100][r])
model.setItem(r,c,item)
tableView.setModel(model)
尝试注释掉 setSortRole 行以查看这两种行为。
于 2012-03-27T14:47:46.067 回答
0
是的,您必须将其转换为字符串。用于locale
根据用户设置显示数字。
this->locale()->toString(value);
于 2012-03-27T10:44:17.683 回答