• 11979阅读
  • 3回复

tableview点击section怎么让内容改变排序方式啊? [复制链接]

上一主题 下一主题
离线huyoujun
 

只看楼主 正序阅读 楼主  发表于: 2008-03-21
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
model =new QSqlQueryModel;
model->setQuery(sql);
tableview->setModel(model);

我设置了tableview->setSortingEnabled(true);
section 上有个会变的小三角了,但是点击内容没有改变排序方式,还要加什么代码吗?
离线84211698

只看该作者 3楼 发表于: 2008-07-22
queryModelGoods.sort(0);
QHeaderView *headerGoods = tableViewGoods->horizontalHeader();
//SortIndicator为水平标题栏文字旁边的三角指示器
headerGoods->setSortIndicator(0, Qt::AscendingOrder);
headerGoods->setSortIndicatorShown(true);
headerGoods->setClickable(true);
connect(headerGoods, SIGNAL(sectionClicked(int)), tableViewGoods, SLOT (sortByColumn(int)));
离线weizhy
只看该作者 2楼 发表于: 2008-07-17
我觉得对于QSqlQueryModel的排序最好还是直接在查询语句中干掉,
因为虽然这样会不灵活,但是容易实现,若真得重载,反而可能很困难,
比如使用SQL Server,QSqlQueryModel每次只缓存256条数据,你
要重载sort,就必须考虑到自己去申请更多缓存的问题,其他的不说,
至少性能会大打折扣
离线XChinux

只看该作者 1楼 发表于: 2008-07-17
自己实现QSqlQueryModel中的sort()虚函数。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个