• 3551阅读
  • 1回复

[提问]QTableWidget排序时如何不区分大小写? [复制链接]

上一主题 下一主题
离线darksun
 
只看楼主 倒序阅读 楼主  发表于: 2013-07-23
使用sortItems按列排序时,效果如下
AAAA
BBBB
CCCC
aaaa
bbb
cccc
我想排序时不区分大小写
aaaa
AAAa
bbb
BBBB
cccc
CCCC
如何实现?在QTableWidget类里没有找到和casesensitive有关的函数。
离线darksun
只看该作者 1楼 发表于: 2013-07-23
查了下其他论坛
http://www.qtcentre.org/threads/12842-QTableWidget-case-sensitive-sort
根据里面的代码改写,覆盖了QTableWidgetItem的<运算符,里面还提到可以覆盖QTableWidget的sortItem函数,但是没有尝试。代码如下:

  1. //.h file
  2. class CTableWidgetItem: public QTableWidgetItem
  3. {
  4.     public:
  5.         CTableWidgetItem();
  6.         CTableWidgetItem(const QString &text,int type= Type):QTableWidgetItem( text,type){};
  7.         virtual bool operator<(const QTableWidgetItem &item) const;
  8. };
  9. //.cpp file
  10. CTableWidgetItem::CTableWidgetItem()
  11. {
  12. }
  13. bool CTableWidgetItem::operator<(const QTableWidgetItem &item) const
  14. {
  15.     return (text().toUpper()<item.text().toUpper())
  16. }

快速回复
限100 字节
 
上一个 下一个