QTableView排序


1.由於是點擊HeaderView進行排序,所以初始代碼

//排序
//QTableView   model->lgoods_model   view->lgoods_view

    lgoods_head_view  = lgoods_view->horizontalHeader();
    lgoods_head_view->setSortIndicator(0,Qt::AscendingOrder);
    lgoods_head_view->setSortIndicatorShown(true);
    connect(lgoods_head_view,SIGNAL(sectionClicked(int)),this,SLOT(view_sort(int)));

 

2.view_sort槽函數

/*
 * 名稱:view_sort
 * 功能:QTableView排序
 * 參數:int
 * 返回:void
 */
void LSell::view_sort(int column)
{
    int i   = lgoods_head_view->sortIndicatorOrder();
    if(0 == i)
        lgoods_model->sort(column,Qt::AscendingOrder);
    else
        lgoods_model->sort(column,Qt::DescendingOrder);
}

 

  完成后遇到的一個問題是,排序時數字排序是亂序

那是因為我QTbaleView數據設置的是按照QString的方式存儲的,設置成數字存儲后即可,代碼如下:

//字符串方式
QString g_name  = query.value(0).toString();
lgoods_model->setItem(row,0,new QStandardItem(g_name));
//數字方式
QVariant g_last  = query.value(1);
QStandardItem *item_last = new QStandardItem();
item_last->setData(g_last,Qt::EditRole);
lgoods_model->setItem(row,1,item_last);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM