Qt窗口及控件-QTreeview/QTableView排序问题
博客地址已更改,文章数量较多不便批量修改,若想访问源文请到 coologic博客 查阅,网址:www.coologic.cn
如本文记录地址为 techieliang.com/A/B/C/ 请改为 www.coologic.cn/A/B/C/ 即可查阅
版权声明:若无来源注明,Techie亮博客文章均为原创。 转载请以链接形式标明本文标题和地址:
本文标题:Qt-QTreeview/QTableView排序问题 本文地址:http://techieliang.com/2017/11/66/
QTreeview/QTableView自带排序功能
Qt可通过sortByColumn()实现对QTreeview/QTableView某列的排序
也可通过setSortingEnabled()实现允许用户点击表头进行排序
排序默认是对item的内容进行排序
若使用
auto mitem = new QStandardItem("XXXX");
或者
auto mitem = new QStandardItem();
mitem .setText("XXXX");
由于其函数参数特性,会导致qt默认认为传入的值为QString类型,就算"XXXX"写的是数字也是字符串。
但可通过
mitem.setData(12313.223,Qt::EditRole);
实现对数字的传入,此函数默认参数类型为QVariant,故传入后view可通过QVariant识别出内容为数字,后进行排序可实现数值内容排序