【Qt5】评标专家库随机选5人小软件
生活随笔
收集整理的這篇文章主要介紹了
【Qt5】评标专家库随机选5人小软件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 軟件截圖
也適用于其它需要隨機(jī)選取某個東西的地方,比如隨機(jī)選擇學(xué)生、抽獎之類的。
【Qt軟件的發(fā)布參考此文:【Qt5】Qt小軟件發(fā)布_qilei2010的博客-CSDN博客_qt5發(fā)布程序】
發(fā)布后exe文件及源代碼下載地址:評標(biāo)專家選取小軟件.zip-電子政務(wù)文檔類資源-CSDN下載
其中 myexe 文件夾可以復(fù)制到 任意PC上,雙擊其中的 SelectName.exe就能使用該軟件,錄入的人員姓名會保存到當(dāng)前文件夾的 people.txt 中。
2. 設(shè)計(jì)與實(shí)現(xiàn)
開發(fā)環(huán)境:Windows 10, Qt 5.14.2。
編程實(shí)現(xiàn):沒有什么難度,就是 QList 內(nèi)的元素隨機(jī)有點(diǎn)難度,我參考此文的代碼。
2.1 項(xiàng)目結(jié)構(gòu)截圖
2.2 主要代碼
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->txtName = "people.txt";//創(chuàng)建保存人名的文件QFile file(this->txtName);if(!file.exists()){file.open(QIODevice::WriteOnly);file.close();} }MainWindow::~MainWindow() {delete ui; }//數(shù)組元素的亂序排列 QList<QString> MainWindow::LuanXu(QList<QString> list) {int length = list.size();for(int i=0;i<length;i++){QTime t = QTime::currentTime();qsrand(t.msec()+t.second()*1000);int r = i+qrand()%(length-i);QString temp=list[i];list[i]=list[r];list[r]=temp;}return list; }//點(diǎn)擊 標(biāo)簽 void MainWindow::on_tabWidget_tabBarClicked(int index) {QFile file(this->txtName);//顯示全部人員if(index == 1){file.open(QIODevice::ReadOnly | QIODevice::Text);QTextStream in(&file);ui->textBrowser->setText(in.readAll());file.close();} }//錄入人員 保存按鈕 void MainWindow::on_pushButton_2_clicked() {QString pname = ui->nameInput->text();QFile file(this->txtName);//讀取people.txt,若無則創(chuàng)建if(!file.exists()){file.open(QIODevice::WriteOnly);file.close();}else{//文件存在file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text);QTextStream stream(&file);stream<<pname<<"\n";file.close();QMessageBox::information(NULL, "提示", "保存成功");ui->nameInput->clear();this->on_tabWidget_tabBarClicked(1); //刷新全部人員顯示} }//隨機(jī)選取人員 void MainWindow::on_pushButton_clicked() {//讀取文件QFile file(this->txtName);file.open(QIODevice::ReadOnly | QIODevice::Text);QList<QString> oraList;QTextStream in(&file);QString line = in.readLine();while (!line.isNull()){oraList.append(line);line = in.readLine();}file.close();if(oraList.size()<9){QMessageBox::information(NULL, "提示", "人員不足9名,請先錄入人員");}else{//隨機(jī)選取QList<QString> list = LuanXu(oraList);QString rstName = list[0]+" "+list[1]+" "+list[2]+" "+list[3]+" "+list[4];QString secName = list[5]+" "+list[6]+" "+list[7]+" "+list[8];ui->lineEdit->setText(rstName);ui->lineEdit_2->setText(secName);} }mainwindows.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDebug> #include <QMessageBox> #include <QFile> #include <QList> #include <QTime>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);QList<QString> LuanXu(QList<QString> list);~MainWindow();private slots:void on_tabWidget_tabBarClicked(int index);void on_pushButton_2_clicked();void on_pushButton_clicked();private:Ui::MainWindow *ui;QString txtName; }; #endif // MAINWINDOW_H總結(jié)
以上是生活随笔為你收集整理的【Qt5】评标专家库随机选5人小软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人学导论第二章
- 下一篇: 在xilinx SDK中查询API函数的