Qt工作笔记-在ListWidget中多线程检索数据
文件读取技术在此链接中:
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中多线程检索数据相关推荐
- Qt工作笔记-在ListWidget中单线程检索数据
文件读取技术在此链接中: https://blog.csdn.net/qq78442761/article/details/79807826 运行截图如下: 代码如下: widget.h #ifnde ...
- Qt工作笔记-使用SQL中的LIMIT进行数据分页
目录 概念 操作 概念 这里使用SQL语言的中LIMIT的特点进行分页显示.这个关键字我就不多说了,现在来看运行截图! 表结构如下: 程序一开始运行: 分页显示: 操作 关键源码如下: sql.h # ...
- Qt工作笔记-pro文件中QMAKE_POST_LINK的使用
目录 基本概念 举个栗子 基本概念 在qmake中加入QMAKE_POST_LINK后,可以执行对应的shell命令,如面关于QMAKE_POST_LINK的例子: QMAKE_POST_LINK + ...
- Qt工作笔记-QGraphics框架中,给图像中的点连线【获取场景中的数据】【有坑】
程序运行截图如下: 这里面有一个坑,就是获取场景中的元素并不是根据图像中,从左往右,从上往下这样的获取. 而是根据加入常见的先后,进行的, 如下图: Line是在Ellipse前加载的,所以是这样的结 ...
- Qt工作笔记-QMenu::exec中使用QWidget::mapToGlobal()与QCursor::pos()之间的些许差异
源码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; ...
- Qt工作笔记-保存textEdit中的数据,并自动打开文件
功能如标题所示. 程序运行如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include & ...
- Qt工作笔记-在QTreeView上实现模型数据的拖拽
运行截图如下: 逻辑是: 1.QTreeView开发拖拽功能. 2.在自定义模型中重写 flags(const QModelIndex &index) const mimeData(const ...
- Qt工作笔记-使用QCustomplot实现鼠标拖动数据点画曲线
运行截图如下: 逻辑很简单,下面直接上代码. widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include &q ...
- Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包
原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...
最新文章
- Leaflet实现地图分屏联动
- 单片机最小系统硬件电路图_经验分享:学单片机,51通则百通
- Centos7 更新pip和scipy
- MyEclipse 8.5安装Aptana
- javacc案例之统计字符
- 阿里系微服务进阶指南
- 线段树(SegmentTree)基础模板
- 音视频常见码率、帧率等概念介绍
- Tier2 上1K Node的准备
- 用123 组成的6位数 的java代码,输入一个三位的整数,计算其每位数字的累加之和。例如:输入整数123后,其每位数字累加之和为6(1+2+3),感激不尽...
- tf.data.Dataset.from_tensor_slices
- 毛球科技细说隔离见证
- 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链
- FileBeat-日志收集器
- 最新Mybatis插入数据返回自增主键详细配置
- js实现,点击侧边导航栏,可以平缓的跳到界面指定位置,同时当界面某个元素在浏览器可视范围的时候,相应的导航栏也显示相应的样式
- 网易员工哀叹:来公司一年,被裁员搞得没心情上班,想考公务员
- CVPR 2021 Oral | OWOD:面向开放世界的目标检测 Towards Open World Object Detection
- oracle1参数化,carol2000的LR学习笔记(1)Oracle excel 数据参数化
- 信息学奥赛一本通1358	中缀表达式值(expr) ()