目录
目标
步骤
头文件
配置ui界面
在.h里定义槽函数和字符串链表和定时器指针
在构造函数里读取txt文件并初始化定时器
开始按钮点击函数 开始定时器
停止按钮点击函数 关闭定时器
定时器槽函数
目标
- 两个按钮,一个开始点名,一个停止点名
- 一个标签,名字可以显示在其中
- 一个txt文件,每行一个名字
步骤
头文件
#include <QFile>
#include <QDebug>
#include <QTimer>
配置ui界面
在.h里定义槽函数和字符串链表和定时器指针
//槽函数
private slots:
void onTimeout();
//链表和指针
private:
Ui::Widget *ui;
QList<QString> list;
QTimer *m_timer;
在构造函数里读取txt文件并初始化定时器
//文件初始化
QFile file(":/data/name.txt");
//打开文件
bool ret = file.open(QIODevice::ReadOnly);
//判断是否打开成功
if(ret == false)
{
qDebug()<<"open error";
return ;
}
//按行遍历放到字符串链表里
while(!file.atEnd())
{
list.push_back(file.readLine().trimmed());
}
//关闭文件
file.close();
//定时器初始化,传入this就不用delete了,关闭界面的时候就会自动释放
m_timer = new QTimer(this);
//关联槽函数
connect(m_timer,&QTimer::timeout,this,& Widget::onTimeout);
//设置随机数种子
qsrand(time(NULL));
开始按钮点击函数 开始定时器
m_timer->start(5);
停止按钮点击函数 关闭定时器
m_timer->stop();
定时器槽函数
//读取链表里的字符串
QString name = list.at(rand()%list.size());
//显示到标签上
ui->label_name->setText(name);