php医院网站开发兼职,免费企业网站建设要求,网站开发验证码的有效性,做外贸客户要求看网站设置一个闹钟#xff0c;左侧窗口显示当前时间#xff0c;右侧设置时间#xff0c;以及控制闹钟的开关#xff0c;下方显示闹钟响时的提示语。当按启动按钮时#xff0c;设置时间与闹钟提示语均不可再改变。当点击停止时#xff0c;关闭闹钟并重新启用设置时间与闹钟提示… 设置一个闹钟左侧窗口显示当前时间右侧设置时间以及控制闹钟的开关下方显示闹钟响时的提示语。当按启动按钮时设置时间与闹钟提示语均不可再改变。当点击停止时关闭闹钟并重新启用设置时间与闹钟提示语。
闹钟窗口展示 工程管理文件
QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# 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_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES \main.cpp \widget.cppHEADERS \widget.hFORMS \widget.ui# Default rules for deployment.
qnx: target.path /tmp/$${TARGET}/bin
else: unix:!android: target.path /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS targetRESOURCES \picture.qrc
头文件
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QDebug
#include QLabel //标签
#include QTextEdit //文本编辑器
#include QLineEdit //行编辑器
#include QPushButton //按钮#include QTimerEvent //事件处理函数
#include QDateTime
#include QtTextToSpeech //播报员
#include QPaintEvent
#include QPainterQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic slots://定义启动按钮的槽函数void on_btnStart_clicked();//定义停止按钮的槽函数void on_btnStop_clicked();public:Widget(QWidget *parent nullptr);~Widget();//重写定时器事件处理函数void timerEvent(QTimerEvent *event) override;void paintEvent(QPaintEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mousePressEvent(QMouseEvent *event) override;private:Ui::Widget *ui;QLabel *lab_time;QPushButton *btn_start;QPushButton *btn_stop;QLineEdit *line_setTime;QTextEdit *text_show;int time_id; //基于事件处理函数QString oclock; //设置闹钟QTextToSpeech *speak; //设置播报员QPoint drap;
};
#endif // WIDGET_H
主函数
#include widget.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w; w.show();return a.exec();
}
主要功能函数
#include widget.h
#include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//实例化一个播报员speak new QTextToSpeech(this);time_id this-startTimer(1000);//纯净窗口this-setWindowFlag(Qt::FramelessWindowHint);//固定窗口尺寸this-setFixedSize(540,410);//显示当前时间lab_time new QLabel(this);lab_time-setAlignment(Qt::AlignCenter);lab_time-setStyleSheet(border:2px solid rgb(0, 170, 255);font:16pt;border-radius:10px;color:white);lab_time-setGeometry(20,20,300,120);//设置text窗口text_show new QTextEdit(this);text_show-setPlaceholderText(请输入闹钟提示语);text_show-setAlignment(Qt::AlignCenter);text_show-setStyleSheet(border:2px solid rgb(0, 170, 255);border-radius:5px;font:20pt;background-color:transparent;color:white);text_show-setGeometry(20,150,500,250);//显示设置的时间line_setTime new QLineEdit(this);line_setTime-setPlaceholderText(请设置时间);line_setTime-setAlignment(Qt::AlignCenter);line_setTime-setStyleSheet(border:2px solid rgb(0, 170, 255);font:16pt;border-radius:10px;background-color:transparent;color:white);line_setTime-setGeometry(350,20,170,60);//启动按钮btn_start new QPushButton(this);btn_start-setText(启动);btn_start-setStyleSheet(border:2px solid rgb(0, 170, 255);border-radius:10px;font:14pt;color:white);btn_start-setGeometry(350,90,80,50);//停止按钮btn_stop new QPushButton(this);btn_stop-setText(停止);btn_stop-setStyleSheet(border:2px solid rgb(0, 170, 255);border-radius:10px;font:14pt;color:white);btn_stop-setGeometry(440,90,80,50);//启动按钮connect(btn_start, QPushButton::clicked, this, Widget::on_btnStart_clicked);connect(btn_stop, QPushButton::clicked, this, Widget::on_btnStop_clicked);}Widget::~Widget()
{delete ui;
}void Widget::on_btnStart_clicked()
{oclock line_setTime-text();line_setTime-setEnabled(false);text_show-setEnabled(false);btn_start-setText(已启动);
}void Widget::on_btnStop_clicked()
{line_setTime-setEnabled(true);text_show-setEnabled(true);speak-stop();btn_start-setText(启动);
}
void Widget::timerEvent(QTimerEvent *event)
{if(event-timerId() time_id){QDateTime time QDateTime::currentDateTime();lab_time-setText(time.toString(yyyy-MM-dd hh:mm:ss));if(oclock time.toString(hh:mm:ss)){speak-say(text_show-toPlainText());}}
}void Widget::paintEvent(QPaintEvent * event)
{QPainter painter(this);painter.drawPixmap(rect(),QPixmap(:/picture/back.jpg),QRect());
}void Widget::mousePressEvent(QMouseEvent *event)
{drap event-globalPos() - this-pos();//右键关闭窗口if(event-button() Qt::RightButton){this-close();}
}void Widget::mouseMoveEvent(QMouseEvent *event)
{this-move(event-globalPos() - drap);
}