學習qt,做了一個小應用:隨機點名提問系統


最近在研究學習qt,qt是一個跨平台的基於C++的應用程序開發框架。

感覺這個qt開發起來還是非常簡單的,封裝了很多功能,開發效率還是非常高的。然后迫不及待的做了一個小案例,就實現了很簡單的一個功能:隨機點名提問功能。

 

1、qt下載
qt下載地址:https://download.qt.io/new_archive/

我下載的是qt5.6.3版本的,qt-opensource-windows-x86-mingw492-5.6.3.exe
這個版本已經內置了qt creator開發工具,不用額外下載qt creator

 

2、隨機點名提問系統

系統界面效果:

源碼已經上傳到:https://gitee.com/modoucn/dianming

想直接使用這個工具的話,可以到這里下載,我是封裝成一個exe,直接運行即可:https://gitee.com/modoucn/dianming/blob/master/bin/dianmingV1.zip

應用使用方法:需要先准備人員名單數據文件,將data.txt人員名單數據文件放到程序同級目錄下,文件格式為一行一個姓名

 

3、涉及到的技術

3.1  窗體禁用最大化按鈕和禁止調節窗口大小

setWindowFlags(windowFlags()& ~Qt::WindowMaximizeButtonHint);
setFixedSize(this->width(), this->height());

3.2  消息對話框

#include <QMessageBox>

...

QMessageBox::critical(this,"出錯了","讀取文件出錯!");

3.3 生成隨機數

生成10以內的隨機數,生成范圍0-9

#include <QTime>

...

QTime time = QTime::currentTime();
qsrand(time.msec()+time.second()*1000);
int num = qrand() % 10;

3.4 讀取文本文件

#include <QFile>
#include <QCoreApplication>
#include <QTextCodec>
#include <QMessageBox>

...

// 獲取程序當前運行目錄
QString filePath = QCoreApplication::applicationDirPath();
QFile file(filePath + "/data.txt");
if(!file.exists()) {
    QMessageBox::critical(this,"出錯了","請將data.txt人員名單放到程序同級目錄下\n文件格式:一行一個姓名,多個姓名用換行符分割");
       
} else if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QMessageBox::critical(this,"出錯了","讀取文件出錯!");    
} else {
    QByteArray bytes = file.readAll();
    // 防止中文亂碼
    QTextCodec *codec = QTextCodec::codecForName("GBK");
    QString content = codec->toUnicode(bytes);
    // 獲取人員列表
    QStringList list = content.split("\n");
}

 

3.5 定時器

主要使用到了QTimer,代碼這里就不粘了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM