показывать числа в qtablewidgetitem с запятой и при использовании sortingenabled из qtablewidget - PullRequest
0 голосов
/ 27 марта 2012

Я хочу показать большие числа через запятую, например. 123000 не как 123000, но делая это, я должен превратить его в строку, в которой сортировка не работает должным образом.

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Немного проще, если вы перейдете к QTableView и QStandardItemModel, а не к QTableWidget - не знаете, подходит ли вам это.

Затем вы можете указать SortRole, отличное от DisplayRole. Вот так (надеюсь, 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, чтобы увидеть два поведения.

0 голосов
/ 27 марта 2012

Да, вы должны преобразовать его в строку. Используйте locale для отображения чисел на основе пользовательских настроек.

this->locale()->toString(value);
...