要求
3个按钮,一个按钮点击后就退出,
一个按钮点击后就播报退出按钮的名字,并无法再点击
一个按钮点击后就恢复播报按钮的功能
代码
homewok.pro 配置文件
QT += core gui texttospeech
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
homework.cpp
HEADERS += \
homework.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
homewok.h 头文件
#include <QPushButton>
#include "QDebug"
#include <QtTextToSpeech>
class HomeWork : public QWidget
{
Q_OBJECT
signals:
public slots:
void showMes();
void open();
public:
HomeWork(QWidget *parent = nullptr);
~HomeWork();
QPushButton* btn1;
QPushButton* btn2;
QPushButton* btn3;
//定义播报者
QTextToSpeech speech;
};
#endif // HOMEWORK_H
homewok.cpp
#include "homework.h"
void HomeWork::showMes()
{
speech.say(btn3->text());
btn2->setEnabled(false);
}
void HomeWork::open()
{
speech.say(btn1->text());
btn2->setEnabled(true);
}
HomeWork::HomeWork(QWidget *parent)
: QWidget(parent)
{
this->resize(1100,600);//重新设置主控件大小
this->setMaximumSize(1600,1000);//设置最大尺寸
this->setMinimumSize(500,400);//设置最小尺寸
//this->setFixedSize(1100,600);//设置固定尺寸
//设置窗口标题
this->setWindowTitle("作业");
//获取标题
QString title=this->windowTitle();
qDebug()<<"title:"<<title;
//设置背景颜色
this->setBackgroundRole(QPalette::Dark);
this->setAutoFillBackground(true);
this->move(50,50); //移动位置
//输出坐标点
qDebug()<<"x:"<<this->x()<<" y:"<<this->y();
qDebug()<<this->pos();
//输出宽度和高度
qDebug()<<"width:"<<width()<<" height:"<<height();
//3个按钮
btn1=new QPushButton(this);
btn2=new QPushButton();
btn2->setParent(this);
btn3=new QPushButton(this);
//btn1
btn1->setText("恢复播报");
btn1->resize(75,30);
btn1->move(0,height()/2);
connect(btn1,&QPushButton::clicked,this,&HomeWork::open);
//btn2
btn2->resize(75,30);
btn2->setText("播报");
btn2->move(width()/2,height()/2);
connect(btn2,&QPushButton::clicked,this,&HomeWork::showMes);
//btn3
btn3->setText("退出");
btn3->resize(75,30);
btn3->move(width()-75,height()/2);
connect(btn3,&QPushButton::clicked,[&](){
this->close();
});
}
HomeWork::~HomeWork()
{
}
main.cpp
#include "homework.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
HomeWork w;
w.show();
return a.exec();
}