创建一个项目,提供三个按钮,第一个按钮实现播报第二个按钮的内容,播报结束后,设置自己不可用。第二个按钮的内容是关闭,实现功能是关掉整个项目,第三个按钮功能是将第一个按钮设置为可以状态
mywnd.h文件
#ifndef MYWND_H
#define MYWND_H
#include <QWidget>
#include <QPushButton>
#include <QTextToSpeech>
class myWnd : public QWidget
{
Q_OBJECT
signals:
void signal_1();
void signal_2();
public slots:
void showMes();
void say_mes();
void close_mes();
void re_mes();
public:
myWnd(QWidget *parent = nullptr);
~myWnd();
//定义一个按钮指针
QPushButton *btn1;
QPushButton *btn2;
QPushButton *btn3;
QTextToSpeech speech;
};
#endif // MYWND_H
mywnd.cpp文件
#include "mywnd.h"
#include<QDebug>
#include<QTextToSpeech>
void myWnd::showMes()
{
static int i=1;
this->btn2->setText(QString::number(i++));
speech.say(btn2->text());
}
void myWnd::say_mes()
{
speech.say(btn3->text());
btn2->setEnabled(false);
}
void myWnd::re_mes()
{
btn2->setEnabled(true);
}
void myWnd::close_mes()
{
this->close();
}
myWnd::myWnd(QWidget *parent)
: QWidget(parent)
{
this->resize(1024,768);
btn1 = new QPushButton();
btn1->setParent(this);
btn1->resize(75,30);
btn1->move(0,height()/2);
btn1->setText("激活播报");
btn2 =new QPushButton("播报",this);
btn2->resize(75,30);
btn2->move(btn1->width(),height()/2);
btn3 =new QPushButton("关闭",this);
btn3->resize(75,30);
btn3->move(btn1->width()+btn2->width(),height()/2);
connect(btn2,&QPushButton::clicked,[&](){
emit signal_1();
});
connect(btn1,&QPushButton::clicked,[&](){
emit signal_2();
});
connect(this,&myWnd::signal_1,this,&myWnd::say_mes);
connect(this,&myWnd::signal_2,this,&myWnd::re_mes);
connect(btn3, &QPushButton::clicked, this, &myWnd::close_mes);
}
myWnd::~myWnd()
{
}