QTableWidget 实现搜索功能

#include "stdafx.h"
#include "QtGuiApplication2.h"


QtGuiApplication2::QtGuiApplication2(QWidget *parent): QMainWindow(parent)
{
    ui.setupUi(this);
    timer_checkDev = new QTimer(this);
    connect(timer_checkDev, SIGNAL(timeout()), this, SLOT(checkDevNum()));
    timer_checkDev->start(1);
    initTab();
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(serchOpt()));
}

void QtGuiApplication2::serchOpt()
{
    QString text = ui.lineEdit->text();
    ScreenInfo(ui.tableWidget, text);
}

void QtGuiApplication2::initTab()
{
    ui.tableWidget->setColumnCount(2);
    QStringList header;
    header << QString::fromLocal8Bit("行政区编码") << QString::fromLocal8Bit("终端地址");
    ui.tableWidget->setHorizontalHeaderLabels(header);

    ui.tableWidget->setColumnWidth(0, 80);  //(*mod)->setColumnWidth(0,60);  
    ui.tableWidget->setColumnWidth(1, 60);
    ui.tableWidget->setRowCount(10);
    for (int i=0;i<10;i++)
    {
        ui.tableWidget->setItem(i, 0, new QTableWidgetItem(QString::fromLocal8Bit("%1").arg(i)));
    }
}

void QtGuiApplication2::ScreenInfo(QTableWidget *source, QString &text)
{
    int rC = source->rowCount();//获得行数
    if ("" == text) {//判断输入是否为空
        for (int i = 0; i < rC; i++) {
            source->setRowHidden(i, false);//显示所有行
        }
    }
    else {
        //获取符合条件的cell索引
        QList item = source->findItems(text, Qt::MatchContains);

        for (int i = 0; i < rC; i++) {
            source->setRowHidden(i, true);//隐藏所有行
        }

        if (!item.isEmpty()) { //不为空
            for (int i = 0; i < item.count(); i++) {
                source->setRowHidden(item.at(i)->row(), false);//item.at(i).row()输出行号
            }
        }
    }
}


 

你可能感兴趣的:(QTableWidget 实现搜索功能)