当前位置: 首页 > news >正文

京东网上商城和京东有什么区别网站功能优化

京东网上商城和京东有什么区别,网站功能优化,网站建设营销开场白,qq音乐wordpress背景: 一开始是通过在主线程中写一个for循环,每次加1后睡眠1s进行进度条更新。但这样写的结果是 --> 无法动态显示进度条进度。后通过上一篇文章 [ QT5|C|通过信号槽机制实现进度条更新 ] 中的写信号槽机制实现。实现后 考虑了下有没有其他方式实现&a…

背景: 一开始是通过在主线程中写一个for循环,每次加1后睡眠1s进行进度条更新。但这样写的结果是 --> 无法动态显示进度条进度。后通过上一篇文章 [ QT5|C++|通过信号槽机制实现进度条更新 ] 中的写信号槽机制实现。实现后 考虑了下有没有其他方式实现,后想到了通过子线程方式。以下是通过子线程实现的具体事例:

功能: 
(1)点击【显示进度条进度】按钮,每隔1s动态加载进度条进度直到加载到100%;
(2)点击【退出】按钮,关闭当前对话框。

1、dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include<QPushButton>
//#include<QThread>
#include<thread>
#include<chrono>
#include<iostream>Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui->setupUi(this);connect(ui->quit_pushButton,&QPushButton::clicked,this,&QDialog::accept);ui->progressBar->setRange(1,100);std::thread myThread([=]{ThreadFunction();});myThread.detach();}void Dialog::ThreadFunction(){connect(ui->progressBar_pushButton,&QPushButton::clicked,this,[=]{for(auto i =1; i!=101 ;i++){ui->progressBar->setValue(i);std::this_thread::sleep_for(std::chrono::milliseconds(1000));}});
}Dialog::~Dialog()
{delete ui;
}

2、dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr);~Dialog();void ThreadFunction();private:Ui::Dialog *ui;
};
#endif // DIALOG_H

3、main.cpp

#include "dialog.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}

4、Dialog.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Dialog</class><widget class="QDialog" name="Dialog"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>Dialog</string></property><widget class="QWidget" name="verticalLayoutWidget"><property name="geometry"><rect><x>150</x><y>370</y><width>351</width><height>161</height></rect></property><layout class="QVBoxLayout" name="verticalLayout"><item><layout class="QHBoxLayout" name="horizontalLayout"><item><widget class="QPushButton" name="progressBar_pushButton"><property name="text"><string>显示进度条进度</string></property></widget></item><item><widget class="QPushButton" name="quit_pushButton"><property name="text"><string>退出</string></property></widget></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_2"><item><widget class="QProgressBar" name="progressBar"><property name="value"><number>0</number></property></widget></item></layout></item></layout></widget></widget><resources/><connections/>
</ui>

注意事项:

1、在主线程的for循环中睡眠1s后更新会造成阻塞 不能直接写;
2、关于主线程中的控件,不要在子线程中进行设置,会阻塞主线程。
(关于这一点猜测的原因:qt内部机制 刷新不及时(虽然会阻塞,最终还是会更新完进度)。如果有大神了解具体原因,请详细介绍下,虚心学习)

显示效果:

子线程进度条

http://www.fp688.cn/news/154955.html

相关文章:

  • 上海平面设计公司排名qq群排名优化
  • 时时彩黑网站是怎么做微信广告怎么投放
  • 济南网站排名外包石嘴山网站seo
  • 百度网站建设推广seo工作是什么意思
  • 百度云怎么做网站空间计算机培训班培训费用
  • 建立官方网站多少钱公司网络营销推广方案
  • 深圳网站商城建设怎么推广淘宝店铺
  • jae搭建wordpress长春seo排名优化
  • wordpress文章内容成都网站优化公司
  • h5网站和传统网站区别seo优化的搜索排名影响因素主要有
  • 怎么做网站分站企业网站推广优化
  • 怎样在网站上做推广二手交易平台
  • 辽源网站优化网站不收录怎么解决
  • 网站维护中是怎么回事武汉大学人民医院院长
  • 深圳网页网站设计深圳公司网络推广该怎么做
  • 更改各网站企业信息怎么做十大技能培训机构排名
  • 网站建设教程免费下载seo是什么部门
  • 驾校网站源码下载宁波seo网络优化公司
  • 做游戏破解版的网站域名申请
  • 百度网站怎么做视频教程市场营销四大基本策略
  • 青岛专业网站开发公司网络营销咨询公司
  • 英文网站建站重庆seo教程
  • 男朋友抱着我在教室做网站专业的网页制作公司
  • 建筑人才市场职称评审石家庄网站优化
  • 网站seo内部优化如何推广店铺呢
  • 网站建设公司模板品牌推广方式有哪些
  • 手机端网站怎么做关键词首页排名优化价格
  • 厦门网站建设服务郑州网站建设推广
  • 2016企业网站建设方案头条搜索站长平台
  • 广告公司寮步网站建设价钱免费推客推广平台