#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ran = new Random;//创建随机数线程对象
connect(this, &Widget::random_num, ran, &Random::Random_num_handler);//连接当前线程传递的随机数个数和随机数线程接收的槽函数
connect(ran, &Random::sendRandom, this, &Widget::Random_handler);//连接随机数线程发送的随机数和当前界面随机数处理函数
mao = new MaoSort;//创建冒泡排序的线程对象
connect(this, &Widget::random_list, mao, &MaoSort::Random_num_handler);//连接当前线程传递的随机数列和冒泡线程接收的槽函数
connect(mao, &MaoSort::sendMaoSort, this, &Widget::MaoSrot_handler);//连接冒泡线程发送的排序好的数列和当前线程排序好的数的处理函数
qui = new QuickSort;//创建快速排序的线程对象
connect(this, &Widget::random_list, qui, &QuickSort::Random_num_handler);//连接当前线程传递的随机数列和快速排序线程接收的槽函数
connect(qui, &QuickSort::sendQuickSort, this, &Widget::QuickSrot_handler);//连接快速排序线程发送的数列和当前界面排序好的数列的处理函数
//连接耗时传递和接收函数
connect(ran, &Random::sendRandTime, this, &Widget::RandTime_handler);
connect(mao, &MaoSort::sendMaoTime, this, &Widget::MaoTime_handler);
connect(qui, &QuickSort::sendQuiTime, this, &Widget::QuiTime_handler);
}
Widget::~Widget()
{
delete ui;
}
//点击开始,默认10个随机数开始生成和排序,启动三个线程,可输入随机数个数*****************************************************8
void Widget::on_pushButton_clicked()
{
if(ui->lineEdit->text().isEmpty())//如果没输入则使用默认随机数10
{
ran->start();//启动子线程获取随机数
}
else
{
emit this->random_num(ui->lineEdit->text().toInt());//获取输入的随机数并发送到线程中
ran->start();//启动获取随机数的子线程
}
}
//处理获取的随机数显示到随机数框中*************************************************************
void Widget::Random_handler(QVector<int> list)
{
for(int i =0; i < list.size(); i++)
{
ui->textEdit->append(QString::number(list.at(i)));//将随机数从容器中取出来放入控件中显示
}
//开始两个排序线程
emit random_list(list);//发送随机数列到两个排序线程中
mao->start();//启动冒泡排序线程
qui->start();//启动快排
}
//处理显示冒泡排序好的数列**************************************************************
void Widget::MaoSrot_handler(QVector<int> list)
{
for(int i =0; i < list.size(); i++)
{
ui->textEdit_mao->append(QString::number(list.at(i)));//将冒泡排序好的数从容器中取出来放入控件中显示
}
}
//处理显示快速排序好的数列**************************************************************
void Widget::QuickSrot_handler(QVector<int> list)
{
for(int i =0; i < list.size(); i++)
{
ui->textEdit_qui->append(QString::number(list.at(i)));//将冒泡排序好的数从容器中取出来放入控件中显示
}
}
//处理耗时显示到UI界面**********************************************************************
void Widget::RandTime_handler(int time)
{
ui->label_random->setText("生成随机数耗时:"+QString::number(time)+"ms");
}
void Widget::MaoTime_handler(int time)
{
ui->label_mao->setText("冒泡排序耗时:"+QString::number(time)+"ms");
}
void Widget::QuiTime_handler(int time)
{
ui->label_qui->setText("快速排序耗时:"+QString::number(time)+"ms");
}
西装没钱买
- 粉丝: 575
- 资源: 2
最新资源
- 基于DSP的2KW单相光伏并网逆变器设计
- Linux初学者入门教程(全英文)
- mipi IP核,纯HDL实现,4lane传输 适用于所有型号FPGA芯片,纯逻辑实现 不管是ov还是索尼,只要是mipi协议的都可以使用 提供xilinx zynq和lattice两个型号例程,
- 基于消纳责任权重的两级电力市场优化运行模型 在电力消纳保障机制和新配额制的实施背景下,为了使省内消纳责任主体完成消纳考核,如何利用市场机制激励可再生能源跨省跨区消纳是关键问题之一 为此,借助于省间
- Virtual lab计算电机振动噪音
- 光伏逆变器,3.6kw储能逆变器全套资料 STM32储能逆变器 BOOST 全桥 基于STM32F103设计,具有并网充电、放电;并网离网自动切;485通讯,在线升级;风扇智能控制,提供过流、过压、
- 电机控制器,谐波电流注入 为解决汽车NvH而开发,旨在消除转矩谐波,降低运行噪声…… 已成功应用于geely某项目
- fpga pcie软核,用于扩展硬核不足的场景,例如nvme大容量存储
- 纯电动汽车Matlab Simulink软件模型,纯电动汽车动力性、经济性仿真模型 1.本模型基于Matlab Simulink搭建,包含:电池、电机、整车纵向动力学、控制策略、驾驶员等模块 2.模
- 随机配置网络SCN做单输入单输出的时间序列拟合预测建模 程序内注释详细直接替数据就可以用 程序语言为matlab
- 模拟背靠背HVDC模块化多电平流器(MMC)作为为整个电网供电的电能质量调节系统 因此,模块化多电平逆变器作为远程端转器运行,也称为孤岛模式 这种电能质量调节系统的主要目标是能够保护敏感的电网免受
- 三菱PLC焊接机控制参考程序 包含触摸屏程序,PLC程序,IO表,伺服参数,通讯协议参数 该设备由24个伺服电机、1套焊接机、2套CCD、4套扫码枪、6套位移传感器组成,plc程序有注释里面fb块
- 汇川AM401系列程序 汇川AM403程序,搭配汇川总线伺服,汇川IT7070系列触摸屏 全自动N95口罩机 大型程序近20000步,凸轮同步控制,凸轮曲线应用,超声波焊接机控制,放卷张力控制,封边轴
- comsol,简单离子沉积电场分布 (不包含沉积过程)
- 电机控制器,英飞凌电动汽车参考方案,包含原理图,和Bom清单,和代码,基于英飞凌TC27xC平台 非常经典的设计方案,很有参考价值,有说明文档
- EP100伺服驱动器量产型全套C源代码和硬件 迈信EP100伺服驱动器量产型修改bug全套C源代码和硬件 1 Altiumn Dsigner硬件图纸,含主控板、驱动板、显示板的电路原理图和PCB文件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈