QTableWidget 实现搜索功能

    技术2024-03-20  83

    #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 <QTableWidgetItem *> 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()输出行号             }         }     } }

     

    Processed: 0.012, SQL: 10