6.图形化列表查询显示

  • UI
  •  

  • 关键代码 mainwindow.h
    1 QStringListModel *slm;
    2 QStringList *sl;

    mainwindow.cpp    init初始化

     1  //初始化combox
     2     ui->comboBox->insertItem(0,"山羊座","山羊座1");
     3     ui->comboBox->insertItem(1,"处女座","处女座");
     4     ui->comboBox->insertItem(2,"双鱼座","双鱼座1");
     5     ui->comboBox->insertItem(3,"狮子座","狮子座1");
     6 
     7     this->sl = new QStringList();
     8     this->sl->append("中文数据测试123a");
     9     this->slm=new QStringListModel(this);
    10     this->slm->setStringList(*sl);
    11     ui->listView->setModel(slm);

    click事件

     1 void MainWindow::on_pushButton_clicked()
     2 {
     3     this->sl->clear();
     4 
     5     QString qstr = ui->comboBox->currentText();
     6     ui->lineEdit->setText(qstr);
     7 
     8     qDebug()<<qstr;
     9     //转换为C风格的字符串(字符串严格转换)
    10     const char *psearch = qstr.toStdString().c_str();
    11     qDebug()<<psearch;
    12 
    13     ifstream fin("C:\\nasa.txt");
    14 
    15     if(!fin)
    16     {
    17         qDebug()<<"文件打开失败";
    18         return;
    19     }
    20     else
    21     {
    22         qDebug()<<"文件打开成功";
    23     }
    24 
    25     //用于读取文件
    26     char strall[3001]={0};
    27     //设置读取个数
    28     int read_count=0;
    29     while(!fin.eof())
    30     {
    31        read_count++;
    32 
    33        if(read_count>15000)
    34        {
    35            qDebug()<<strall<<endl;
    36            break;
    37        }
    38 
    39        //读取
    40        memset(strall,0,sizeof(strall));
    41        fin.getline(strall,3000);
    42 
    43         //设置编码方式,解决乱码问题
    44         QTextCodec *codec = QTextCodec::codecForName("gb2312");
    45         QString qstrall = codec->toUnicode(strall);
    46 
    47         //转化为C风格
    48         const char *pstrall = qstrall.toStdString().c_str();
    49         char *pfind = strstr(pstrall,psearch);
    50 
    51         if(pfind!=NULL)
    52         {
    53             qDebug()<<pstrall;
    54             //添加到列表
    55             sl->append(qstrall);
    56         }
    57      }
    58 
    59     this->slm->setStringList(*sl);
    60     ui->listView->setModel(slm);
    61 }
    comboBox_currentIndexChanged
    1 void MainWindow::on_comboBox_currentIndexChanged(int index)
    2 {
    3     QString qstr = ui->comboBox->currentText();
    4     ui->lineEdit->setText(qstr);
    5 }

     

posted @ 2018-04-08 12:59  喵小喵~  阅读(263)  评论(0编辑  收藏  举报