0

我想显示用逗号分隔的大量数字,例如 123,000 而不是 123000,但这样做我必须将其变成一个字符串,在该字符串上排序无法按预期工作。

4

2 回答 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 回答