QTextToSpeech实现小学生的听写

最近一直在外面出差,孩子的英语和语文课后的听写作业就没法继续了,所以就给他写了个小程序,把所有的语文和英语词组都记录下来,然后从里面随机抽取进行朗读听写。

先上图

整体界面和代码参考了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.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值