C++實現(xiàn)幸運大抽獎(QT版)
來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次
本文實例為大家分享了C++實現(xiàn)幸運大抽獎的具體代碼,供大家參考,具體內容如下
程序效果:
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include <QLabel> #include <QPushButton> #include <QTimer> #include <QStringList> class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); private slots: void on_clicked(); void on_timer(); private: QLabel *label1; QPushButton *btn1; QTimer *tm; QStringList strlist; }; #endif // DIALOG_H
#include "dialog.h" #include <QVBoxLayout> #include <QFont> #include <QFile> #include <QTextStream> #include <QMessageBox> Dialog::Dialog(QWidget *parent) : QDialog(parent) { setWindowTitle(tr("幸運大抽獎"));//設置窗口標題 label1 = new QLabel; label1->setText(tr("開始幸運大抽獎")); QFont font; font.setBold(true);//設置字體為粗體 font.setPointSize(80);//設置字號 label1->setFont(font); btn1 = new QPushButton; btn1->setText(tr("開始")); QVBoxLayout *layout1 = new QVBoxLayout(this); layout1->addWidget(label1, 0, Qt::AlignCenter);//加入label1標簽,并且居中顯示 layout1->addWidget(btn1); // layout1->setSizeConstraint(QLayout::SetFixedSize);//設置layout大小和控件尺寸一致,使窗口不能更改大小 QFile file("student.txt"); if (file.open(QFile::ReadOnly))//以只讀的方式打開student.txt文件 { QTextStream stream(&file); while(!stream.atEnd()) { strlist.append(stream.readLine());//將文件內容放到strlist中 } file.close(); }else { //如果打開student.txt文件失敗,程序退出 QMessageBox::critical(this, tr("錯誤"), file.errorString()); exit(0); } tm = new QTimer(this); connect(tm, SIGNAL(timeout()), this, SLOT(on_timer())); connect(btn1, SIGNAL(clicked()), this, SLOT(on_clicked())); } Dialog::~Dialog() { } void Dialog::on_clicked() { static bool status = true; if (status) { btn1->setText("停止");//如果isok為true,設置按鈕標題為“停止” tm->start(50);//啟動計時器,沒0.05秒執(zhí)行一次on_timer函數(shù) status = false; }else { btn1->setText("開始");//如果isok為false,設置按鈕標題為“開始” tm->stop();//停止計時器 status = true; } } void Dialog::on_timer() { if (strlist.count() == 0) { return ;//如果strlist中沒有內容,函數(shù)返回 } static int i = 0; label1->setText(strlist[i]);//從0到strlist.count(),循環(huán)顯示strlist中每一項的內容 i++; if (i >= strlist.count()) { i = 0; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
- 01-10數(shù)據(jù)結構課程設計-用棧實現(xiàn)表達式求值的方法詳解
- 01-10使用OpenGL實現(xiàn)3D立體顯示的程序代碼
- 01-10深入理解C++中常見的關鍵字含義
- 01-10求斐波那契(Fibonacci)數(shù)列通項的七種實現(xiàn)方法
- 01-10C語言 解決不用+、-、&#215;、&#247;數(shù)字運算符做加法
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實現(xiàn)DBSCAN聚類算法
- 01-10深入全排列算法及其實現(xiàn)方法


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個骰子