首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT tableWidget中数据排序的有关问题

2013-12-15 
QT tableWidget中数据排序的问题现有一个tableWidget,4列,8行,头一列定义为id列,输入数据为int型数据,现向

QT tableWidget中数据排序的问题
现有一个tableWidget,4列,8行,头一列定义为id列,输入数据为int型数据,现向tableWidget里输入数据,怎么设置按照id大小从小到大顺序排列,用语句怎么实现??我知道其实点击id这一列就可以实现数据按照id从小到大或者从大到小排序,但怎么用语句实现,知道的麻烦说下谢谢了。
[解决办法]
tableWidget 是基于model下的一个组件,你让他显示model里面的东西时候 你查数据库时候就可以进行排序
写数据库语句可以用
QSqlQueryModel model;
model.setQuery("SELECT 列名 FROM 表名 ORDER BY ID ASC")

之后再用tableWidget.setModel(model);就可以了


[解决办法]
tableWidget->setAutoSorting(true);没记错的话是这样。点击顶栏排序
[解决办法]
Table sorting
[解决办法]
也许是有点愚笨的办法:
1、按你说的应该属于一个鼠标点击标题栏,触发信号并处理的操作,那么首先捕获鼠标事件 setMouseTracking(true);

2、关于connect语句怎么写 首先这是在同一个tablewidget上的问题,故可以就在该类实现文件中作该操作 刚查了下信号函数 也不是很确定 cellClicked ( int row, int column );这个函数不知道能不能判断row == -1为标题栏,呵呵,先假设可以,那么自定义一个slot函数 , OnCellClicked(int _row,int _column);   if (_row == -1 && _colume ==**) {  // 这里可以用void sortItems ( int column, Qt::SortOrder order = Qt::AscendingOrder )这个函数}

3、原来打算说到3 结果说到第二就说完了  恩  如果row == -1 不表示标题栏的话就使用clicked再判断是否是标题吧   很多只是推测 错了请指出

热点排行