У меня проблемы при использовании sortItems () для QListWidget.Вот что происходит:
Изменяет это:
A zd CE o I
на это:
ACI deoz
Но яхотите, чтобы это было:
AC de I oz
Есть ли какой-нибудь способ изменить его, чтобы он был подобным?
QListWidget использует DisplayRole (текст элемента) для сортировки и вызовов QString :: localeAwareCompare на них. Чтобы переопределить значение по умолчанию, вы можете либо изменить используемый языковой стандарт (см. QLocale ), либо переопределить свой собственный подкласс QListWidgetItem QListWidgetItem :: operator <</a>, и позволить ему выполнить желаемое сравнение.
Для чего-то более продвинутого, я бы посоветовал взглянуть на QListView , который вы можете комбинировать либо с собственной реализацией модели, либо с удобными моделями QStandardItemModel или QStringListModel (последнее может быть самым простым и элегантным решением в вашем случае). Для сортировки вы должны поместить QSortFilterProxyModel между фактической моделью и представлением.