最近一直在外面出差,孩子的英语和语文课后的听写作业就没法继续了,所以就给他写了个小程序,把所有的语文和英语词组都记录下来,然后从里面随机抽取进行朗读听写。
先上图
整体界面和代码参考了Qt5.8的实例,在实例的基础上添加了读取文本,在一个范围内生成多少个随机数,多线程实现了语音播放的停顿。
1、读取文本
void DxThreadObject::readFile(QString filePath)
{
QFile file(filePath);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return;
}
QTextStream in(&file);
QTextCodec::ConverterState state;
if(!in.atEnd())
{
const QByteArray ba = file.read(file.bytesAvailable());
QTextCodec* codec = QTextCodec::codecForName("UTF-8");
QString lineStr = codec->toUnicode(ba.constData(), ba.size(), &state);
int ninvalidChars = state.invalidChars;
if(ninvalidChars > 0)
in.setCodec("GBK");
else
in.setCodec("UTF-8");
}
m_textList.clear();
in.seek(0);
while(!in.atEnd())
{
QString line = in.readLine().toUtf8();
m_textList.