zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    docker 创建新的镜像到私有仓库
    docker 数据管理<1>
    docker 数据管理<1>
    docker 运行挂载磁盘
    docker 运行挂载磁盘
    docker 容器管理上
    docker 指定容器名字
    消息队列应用场景解析
    Apache软件基金会Member陈亮:一名开源拓荒者的 Apache之旅
    【干货贴】消息队列如何利用标签实现消息过滤
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8744352.html
Copyright © 2011-2022 走看看