如何使用QSortFilterProxyModel按字母顺序对列表项进行排序
How i can sort a list item by alphabetical order with QSortFilterProxyModel?
Hi我已经在此模式中设置了QSortFilterProxyModel属性
int main(int argc, char *argv[])
{
....
ProgramFilterProxyModel programFPModel{};
programFPModel.setSourceModel(&pm);
engine.rootContext()->setContextProperty("programFPModel", &programFPModel);
....
}
ProgramFilterProxyModel::ProgramFilterProxyModel(QObject *parent) :
QSortFilterProxyModel(parent), m_stringaRicerca(""),
m_programListCurrIndex(0)
{
setSortRole(ProgramModel::NameQml);
setDynamicSortFilter(true);
sort(0);
setSortLocaleAware(true);
}
当我在Ubuntu上执行我的应用程序时,项目会按字母顺序正确排序,因为我已将isSortLocaleAware属性设置为true,相反,如果我尝试在带有buildroot操作系统(IMX6微控制器(的嵌入式系统上执行应用程序,项目不会按字母顺序排序。
如果我尝试使用打印
qDebug()<< QLocale::system().language()
我的buildroot操作系统的区域设置是"C",而在ubuntu上的输出是意大利语,这可能是问题所在吗?
如何在没有setSortLocaleAware(true(的情况下按名称和字母顺序对项目进行排序?
我想要的顺序列表与文件列表的排序顺序相同,例如在ubuntu中。
示例:
- a.txt
- A.txt
- à.txt
- b.txt
- B.txt
您可以设置默认的区域设置(尽快在main((中(
QLocale::setDefault(QLocale(QLocale::Italian));
上一行只是一个例子。您应该根据用户偏好等设置一个可变的区域设置。
或者,您可以覆盖受保护的方法bool QSortFilterProxyModel::lessThan()
,并根据需要比较这些项。请参见自定义排序/筛选模型示例。
相关文章:
- 试图在c++中对数字列表进行排序
- 在STL - C++中按成绩对学生列表进行排序?
- 使用列表 STL 递归进行插入排序
- 列表 iter 不取消引用 使用列表进行插入排序
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 为什么在排序链表上的这种合并实现总是将两个列表都设置为 NULL,而只有一个应该设置一个列表?
- 如何按键对 std::对列表进行排序?
- 如何通过保持第一个插入的位置来对列表中插入的其余元素进行排序?
- 如何使用cpp编写选择排序算法以降序对元素列表进行排序?
- 使用自定义比较函数在类内进行列表排序
- 列表::排序更改值C
- 对于列表排序,有没有办法使用相同的参数让多个运算符重载?
- 在 c++ 中将数字从列表排序到数组中的气泡排序问题
- 运算符<用于列表排序
- C++列表排序功能
- C++ STL 算法(列表排序)OpenMP/多线程实现
- 列表排序不正确
- 列表排序和结构体向量排序之间的性能差距.c++
- 对抽象数据类型的stl::列表排序
- C++std列表排序使用自定义比较器,该比较器依赖于对象实例的成员变量