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

域名注册之后如何建设网站千博企业网站管理系统营销旗舰版

域名注册之后如何建设网站,千博企业网站管理系统营销旗舰版,软件开发模板,高端网站开发公开课背景: 一开始是通过在主线程中写一个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.yayakq.cn/news/389585/

相关文章:

  • 濮阳做网站的公司有哪些最权威的品牌排行榜网站
  • 中国作风建设门户网站天律网站建设
  • 网站建设方案需要哪些步骤页面设计模板网站
  • 哈尔滨无障碍网站建设营业执照注册网站
  • 网站开发平台论文天猫商城网上购物首页
  • 如何做好一个网站运营上海抖音推广
  • 如何分析竞争对手网站网站内容优化方法有哪些
  • 如何介绍网站模板怎么做网站数据分析
  • 办网站需要什么大学学校网站建设方案
  • 网址大全最新版的国内做seo最好公司
  • 用织梦系统怎么做网站国外网站怎么做引流
  • 湘icp备 网站建设 农业 湖南广东建设集团
  • 三拼域名做网站长不长快速开发平台免费版
  • 一键生成网站wordpress自定义分类名称
  • 网站设置不拦截合肥哪家公司做网站
  • 网站建设 昆明 价格37网游官网
  • 佛山网站建设公司点精小胡南昌网站开发
  • 哪个公司搭建网站网站改版301怎么做
  • 怎样做网站赚点击量的钱怎么创建一个平台
  • 在线课程网站建设规范网页设计免费模板9466
  • 安全的营销型网站制作泉州网站建设-泉州网站建设
  • 郴州网站优化公司网络公司网站首页
  • 网站群建设讲话征信网站开发
  • wordpress导航站源码网站推广方法有哪些
  • 江苏建新建设集团有限公司网站做的网站提示不安全
  • 湖南送变电建设公司 网站英文网站后台维护
  • 怎么去跟客户谈网站建设网上商城购物系统er图
  • 莱阳做网站的凡科建站官网需要什么
  • 网站宣传方法有哪些北京学做网站
  • win7本地架设网站明港seo公司