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

网站建设类公司百度浏览器主页网址

网站建设类公司,百度浏览器主页网址,网站制作好后 怎样上线,做企业内刊有哪些网站推荐简介 本文章是基本Qt与C实现一个抽奖小游戏,用到的知识点在此前发布的几篇文章。 下面是跳转链接: 【Qt控件之QLabel】用法及技巧链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441?spm1001.2014.3001.5501 【Qt控件之QPus…

简介

本文章是基本Qt与C++实现一个抽奖小游戏,用到的知识点在此前发布的几篇文章。
下面是跳转链接:
【Qt控件之QLabel】用法及技巧链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441?spm=1001.2014.3001.5501

【Qt控件之QPushButton】用法及技巧 链接:
https://blog.csdn.net/MrHHHHHH/article/details/133692079?spm=1001.2014.3001.5501

【Qt控件之QDialog】用法及技巧 链接:
https://blog.csdn.net/MrHHHHHH/article/details/133721638?spm=1001.2014.3001.5501

【Qt控件之QMainWindow】用法及技巧 链接:
https://blog.csdn.net/MrHHHHHH/article/details/133722035?spm=1001.2014.3001.5501

【Qt控件之QTimer】用法及技巧 链接:
https://blog.csdn.net/MrHHHHHH/article/details/133722476?spm=1001.2014.3001.5501

实现方式

实现方式多种多样,但毕竟是小程序,需求明确(就没考虑操作及优化),功能简单,条理清晰,主要提供三种实现方式(此阶段未实现概率设置,之后再发布概率设置版本吧):

1. 基于while循环
  • 示例:
    先粘贴UI
    在这里插入图片描述

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_FORWARD_DECLARE_CLASS(C_DlgSetting)namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:// 退出void slot_actQuit_triggered();// 设置概率void slot_actSetting_triggered();// 开始void slot_btnStart_clicked();// 停止void slot_btnStop__clicked();private:Ui::MainWindow *ui;C_DlgSetting*       m_pDlgSetting; // 概率设置类bool                m_bFlag = false;// 标志
};#endif // MAINWINDOW_H

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "DlgSetting.h"#include <QTime>
#include <QThread>
#include <QCoreApplication>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// m_pDlgSetting = new C_DlgSetting(this);// 信号和槽{connect(ui->action_quit, &QAction::triggered, this, &MainWindow::slot_actQuit_triggered);connect(ui->action_setting, &QAction::triggered, this, &MainWindow::slot_actSetting_triggered);connect(ui->btn_start, &QPushButton::clicked, this, &MainWindow::slot_btnStart_clicked);connect(ui->btn_stop, &QPushButton::clicked, this, &MainWindow::slot_btnStop__clicked);}// 声明随机数种子,不然就是伪随机(每次产生的随机数都一样)qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::slot_actQuit_triggered()
{close();
}void MainWindow::slot_actSetting_triggered()
{// m_pDlgSetting->exec();
}void MainWindow::slot_btnStart_clicked()
{if(m_bFlag){return;}QStringList sl;sl << "一等奖" << "二等奖" << "三等奖" << "四等奖" << "五等奖";m_bFlag = true;while (m_bFlag) {int nRange = qrand() % 5;ui->label_turn->setText(sl.at(nRange));// 100ms转一次QThread::msleep(100);// 防止界面卡死QCoreApplication::processEvents();}
}void MainWindow::slot_btnStop__clicked()
{m_bFlag = false;// 显示最终获奖结果QString strRes = QString("最终结果: %1").arg(ui->label_turn->text());ui->label_res->setText(strRes);
}

.main

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
  • 结果
    在这里插入图片描述
  • 实现思路
    – 设置UI,注意命名
    – 进行信号和槽连接
    – 实现"开始"和"结束"功能
    – 显示结果
2. 基于定时器
  • 示例
    UI显示与1.是一样的,需借助QTimer实现

QTimer 是 Qt 框架中的一个类,用于在特定的时间间隔后发出一个信号。它是 Qt
的事件循环系统的一部分,该系统允许程序在等待某些事件(如用户输入或定时器超时)时保持响应。

QTimer 的工作原理是将定时器的超时作为一个事件添加到 Qt
的事件队列中。当事件循环检测到定时器超时时,它就会发出预定的信号。这种机制允许 QTimer
在等待定时器超时时不会阻塞用户界面,因为事件循环可以继续处理其他事件,如用户输入或绘制事件。

相比之下,如果使用标准的 C++ 定时器,如
std::this_thread::sleep_for,在等待定时器超时时,当前线程将被阻塞,无法处理其他事件。这会导致用户界面无响应,给用户一种程序已经卡死的感觉。

直接粘贴相关代码:
.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QTimer>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:// 退出void slot_actQuit_triggered();// 开始void slot_btnStart_clicked();// 停止void slot_btnStop__clicked();// 定时器处理void slot_timeout();private:Ui::MainWindow *ui;bool                m_bFlag = false;// 标志QTimer*             m_pTimer;// 定时器
};#endif // MAINWINDOW_H

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"#include <QTime>
#include <QThread>
#include <QCoreApplication>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);m_pTimer = new QTimer(this);// 处理connect(m_pTimer, &QTimer::timeout, this, &MainWindow::slot_timeout);// 信号和槽{connect(ui->action_quit, &QAction::triggered, this, &MainWindow::slot_actQuit_triggered);connect(ui->btn_start, &QPushButton::clicked, this, &MainWindow::slot_btnStart_clicked);connect(ui->btn_stop, &QPushButton::clicked, this, &MainWindow::slot_btnStop__clicked);}// 声明随机数种子,不然就是伪随机(每次产生的随机数都一样)qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::slot_actQuit_triggered()
{close();
}
void MainWindow::slot_btnStart_clicked()
{// 此处可先判断定时器是否处于活动状态,如果是,则返回;否则,再启动// ToDoSomething{}m_pTimer->start(100);
}void MainWindow::slot_btnStop__clicked()
{m_pTimer->stop();// 显示最终获奖结果QString strRes = QString("最终结果: %1").arg(ui->label_turn->text());ui->label_res->setText(strRes);
}void MainWindow::slot_timeout()
{QStringList sl;sl << "一等奖" << "二等奖" << "三等奖" << "四等奖" << "五等奖";int nRange = qrand() % 5;ui->label_turn->setText(sl.at(nRange));
}
  • 实现思路
    – 点击"开始",启动定时器
    – “定时器"实现界面刷新
    – 点击"结束”,停止定时器,并将结果显示
3. 基于线程
  • 实现思路(等之后发布线程文章后,实现)
    – 在主窗口创建一个线程对象
    – 点击"开始",将信号发送到线程中,用于更新几等奖
    – 线程将更新后的信息发送到主窗口
    – 主窗口动态显示
    – 点击"结束",停止线程,显示结果

go.


文章转载自:
http://cowbind.c7500.cn
http://actualism.c7500.cn
http://movable.c7500.cn
http://noctilucent.c7500.cn
http://eisegesis.c7500.cn
http://shipbuilder.c7500.cn
http://pluviometry.c7500.cn
http://notchwing.c7500.cn
http://nicaea.c7500.cn
http://didynamous.c7500.cn
http://formless.c7500.cn
http://barothermohygrogram.c7500.cn
http://deformation.c7500.cn
http://soubise.c7500.cn
http://reasoningly.c7500.cn
http://memphis.c7500.cn
http://worth.c7500.cn
http://unadvanced.c7500.cn
http://adventitia.c7500.cn
http://osteography.c7500.cn
http://lignivorous.c7500.cn
http://forecaddie.c7500.cn
http://climactic.c7500.cn
http://certiorari.c7500.cn
http://fungivorous.c7500.cn
http://mosasaur.c7500.cn
http://wingbeat.c7500.cn
http://cybernation.c7500.cn
http://ulnar.c7500.cn
http://deadwood.c7500.cn
http://mccarthyist.c7500.cn
http://permissively.c7500.cn
http://methyl.c7500.cn
http://colon.c7500.cn
http://unreceipted.c7500.cn
http://fingered.c7500.cn
http://tarpeia.c7500.cn
http://dagan.c7500.cn
http://supplement.c7500.cn
http://taser.c7500.cn
http://dysprosody.c7500.cn
http://cabotine.c7500.cn
http://consolatory.c7500.cn
http://coot.c7500.cn
http://tricorporal.c7500.cn
http://multiprocessing.c7500.cn
http://situation.c7500.cn
http://rimpled.c7500.cn
http://waul.c7500.cn
http://stimulate.c7500.cn
http://nephrotomize.c7500.cn
http://platycephalic.c7500.cn
http://intellection.c7500.cn
http://spearfisherman.c7500.cn
http://assimilate.c7500.cn
http://casebearer.c7500.cn
http://bhn.c7500.cn
http://thermosiphon.c7500.cn
http://absorbingly.c7500.cn
http://flabellifoliate.c7500.cn
http://imprecision.c7500.cn
http://parlormaid.c7500.cn
http://lt.c7500.cn
http://revokable.c7500.cn
http://constipate.c7500.cn
http://reincorporate.c7500.cn
http://stabilization.c7500.cn
http://symphony.c7500.cn
http://manhattanite.c7500.cn
http://koine.c7500.cn
http://adless.c7500.cn
http://pendulous.c7500.cn
http://semidetached.c7500.cn
http://valve.c7500.cn
http://motmot.c7500.cn
http://gunmen.c7500.cn
http://kurdistan.c7500.cn
http://blackfoot.c7500.cn
http://updraft.c7500.cn
http://rangership.c7500.cn
http://donative.c7500.cn
http://subsidise.c7500.cn
http://rotoscythe.c7500.cn
http://heptasyllabic.c7500.cn
http://through.c7500.cn
http://sexy.c7500.cn
http://dcmg.c7500.cn
http://prodigious.c7500.cn
http://skee.c7500.cn
http://deconsecrate.c7500.cn
http://finial.c7500.cn
http://spraddle.c7500.cn
http://inedibility.c7500.cn
http://megavolt.c7500.cn
http://diaphototropism.c7500.cn
http://recitation.c7500.cn
http://chartism.c7500.cn
http://trouper.c7500.cn
http://erudite.c7500.cn
http://peace.c7500.cn
http://www.zhongyajixie.com/news/84046.html

相关文章:

  • 小说网站建设后如何赚钱最火的网络销售平台
  • 莱芜网站建设方案公司seo如何优化关键词
  • 丽水做网站企业百度热门排行榜
  • 阜新住房建设委员会网站外贸网站建设推广
  • 哈尔滨企业网站建设公司网络软文范例
  • 做网站宣传行业网络营销
  • 医院网站建设山东关键词批量调词软件
  • 论坛类的网站怎么做购买域名的网站
  • 免费制作海报的app乐山网站seo
  • 提供免费空间的网站网络营销策划的基本原则
  • wordpress+4+chm百度首页优化
  • 网站开发 项目章程域名估价
  • 个人网站要买多大的空间兰州网络推广优化服务
  • 没网站做cpa广告联盟做推广
  • 做好网站怎么做app如何在百度上开店铺
  • 济南网站哪家做的好整站seo排名费用价格
  • 秦淮html5响应式网站seo广告优化
  • 福建省建设继续教育网站网站排名优化查询
  • 在线做txt下载网站百度指数下载app
  • pc端网站开发工具潍坊seo外包平台
  • 做cpa网站厦门seo排名
  • 国外做旅游攻略的网站好seo诊断方案
  • 网站开发如何使用微信登录域名停靠
  • 买下云服务器怎么做网站seo搜索引擎优化实训总结
  • wordpress社交seo网站内容优化
  • 做网站准备百度站长平台怎么用
  • 保定北京网站建设seo常用工具
  • 媒体网站的品牌建设软件开发公司联系方式
  • 网站百度收录变少信息流广告的特点
  • 学网站设计培训电话深圳市网络营销推广服务公司