文件读取技术在此链接中:

https://blog.csdn.net/qq78442761/article/details/79807826

在ListWidget中单线程检索数据在此链接中:

https://blog.csdn.net/qq78442761/article/details/79809956

下面是多线程检索,运行截图如下:

主线程用红色,子线程是紫色。

文件结构如下:

代码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QIODevice>
#include <QFile>
#include <QColor>#include "widget.h"
#include "workthread.h"namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic slots:void pressBtn();void pressBtn2();void threadStart();void threadInUi(int row);public:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;WorkThread *thread;
};#endif // WIDGET_H

workthread.h

#ifndef WORKTHREAD_H
#define WORKTHREAD_H#include <QObject>
#include <QDebug>
#include <QThread>
#include <QListWidget>class WorkThread : public QThread
{Q_OBJECTsignals:void sendRow(int row);public:WorkThread(int low,int high,QListWidget *widget);protected:void run();private:int m_low;int m_high;QListWidget *m_widget;};#endif // WORKTHREAD_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(pressBtn()));connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(pressBtn2()));connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(threadStart()));
}void Widget::threadStart(){thread=new WorkThread((ui->label_2->text().toInt())/2,ui->label_2->text().toInt(),ui->listWidget);connect(thread,SIGNAL(sendRow(int)),this,SLOT(threadInUi(int)));thread->start();
}void Widget::threadInUi(int row){ui->listWidget->item(row)->setTextColor(0x9400D3);
}void Widget::pressBtn2(){QString str="1111111111";for(int i=0;i<ui->label_2->text().toInt()/2;i++){if(ui->listWidget->item(i)->text()==str)ui->listWidget->item(i)->setTextColor(0xff0000);}
}void Widget::pressBtn(){QFile file("d:/data.data");if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){qDebug()<<"打开失败!";}while(!file.atEnd()){QByteArray line=file.readLine();QString str(line);str.remove("\n");ui->listWidget->addItem(str);}ui->label_2->setText(QString::number(ui->listWidget->count()));
}Widget::~Widget()
{delete ui;
}

workthread.cpp

#include "workthread.h"WorkThread::WorkThread(int low, int high, QListWidget *widget)
{m_low=low;m_high=high;m_widget=widget;
}void WorkThread::run(){for(int i=m_low;i<m_high;i++){if("1111111111"==m_widget->item(i)->text()){emit sendRow(i);}}
}

main.cpp

Qt工作笔记-在ListWidget中多线程检索数据相关推荐

  1. Qt工作笔记-在ListWidget中单线程检索数据

    文件读取技术在此链接中: https://blog.csdn.net/qq78442761/article/details/79807826 运行截图如下: 代码如下: widget.h #ifnde ...

  2. Qt工作笔记-使用SQL中的LIMIT进行数据分页

    目录 概念 操作 概念 这里使用SQL语言的中LIMIT的特点进行分页显示.这个关键字我就不多说了,现在来看运行截图! 表结构如下: 程序一开始运行: 分页显示: 操作 关键源码如下: sql.h # ...

  3. Qt工作笔记-pro文件中QMAKE_POST_LINK的使用

    目录 基本概念 举个栗子 基本概念 在qmake中加入QMAKE_POST_LINK后,可以执行对应的shell命令,如面关于QMAKE_POST_LINK的例子: QMAKE_POST_LINK + ...

  4. Qt工作笔记-QGraphics框架中,给图像中的点连线【获取场景中的数据】【有坑】

    程序运行截图如下: 这里面有一个坑,就是获取场景中的元素并不是根据图像中,从左往右,从上往下这样的获取. 而是根据加入常见的先后,进行的, 如下图: Line是在Ellipse前加载的,所以是这样的结 ...

  5. Qt工作笔记-QMenu::exec中使用QWidget::mapToGlobal()与QCursor::pos()之间的些许差异

    源码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; ...

  6. Qt工作笔记-保存textEdit中的数据,并自动打开文件

    功能如标题所示. 程序运行如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include & ...

  7. Qt工作笔记-在QTreeView上实现模型数据的拖拽

    运行截图如下: 逻辑是: 1.QTreeView开发拖拽功能. 2.在自定义模型中重写 flags(const QModelIndex &index) const mimeData(const ...

  8. Qt工作笔记-使用QCustomplot实现鼠标拖动数据点画曲线

    运行截图如下: 逻辑很简单,下面直接上代码. widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include &q ...

  9. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包

    原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...

最新文章

  1. Leaflet实现地图分屏联动
  2. 单片机最小系统硬件电路图_经验分享:学单片机,51通则百通
  3. Centos7 更新pip和scipy
  4. MyEclipse 8.5安装Aptana
  5. javacc案例之统计字符
  6. 阿里系微服务进阶指南
  7. 线段树(SegmentTree)基础模板
  8. 音视频常见码率、帧率等概念介绍
  9. Tier2 上1K Node的准备
  10. 用123 组成的6位数 的java代码,输入一个三位的整数,计算其每位数字的累加之和。例如:输入整数123后,其每位数字累加之和为6(1+2+3),感激不尽...
  11. tf.data.Dataset.from_tensor_slices
  12. 毛球科技细说隔离见证
  13. 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链
  14. FileBeat-日志收集器
  15. 最新Mybatis插入数据返回自增主键详细配置
  16. js实现,点击侧边导航栏,可以平缓的跳到界面指定位置,同时当界面某个元素在浏览器可视范围的时候,相应的导航栏也显示相应的样式
  17. 网易员工哀叹:来公司一年,被裁员搞得没心情上班,想考公务员
  18. CVPR 2021 Oral | OWOD:面向开放世界的目标检测 Towards Open World Object Detection
  19. oracle1参数化,carol2000的LR学习笔记(1)Oracle excel 数据参数化
  20. 信息学奥赛一本通1358 中缀表达式值(expr) ()

热门文章

  1. Centos下MySQL的安装及常见问题
  2. 通讯频道:TOM续约Skype破镜重圆
  3. I-EIM分享一套局域网通讯源码
  4. Windows Sysinternals Desktops v1.0 发布 - 超简单的虚拟桌面程序
  5. 教程:如何迅速制造Vista蓝屏死机?
  6. 上海最帅交警迷倒一片女白领成为城市风景
  7. 比尔盖茨给刚毕业程序员的10点忠告
  8. 自己编制windows的后台进程程序
  9. 计算机族应常喝的健康饮品
  10. 怎么样成为编程技术大牛?