当前位置:   article > 正文

2024.2.23 C++&&QT 作业

2024.2.23 C++&&QT 作业

思维导图

练习题

1>简单实现闹钟播报,设置时间,当系统时间与设置时间相同时播报语音5次,然后停止。如果设置时间小于当前系统时间,则弹出消息提示框,并清空输入框。

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent)
  4. : QWidget(parent)
  5. , ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. ui->timeLabel->setAlignment(Qt::AlignCenter);
  9. ui->showLabel->setAlignment(Qt::AlignCenter);
  10. id = startTimer(1000);
  11. }
  12. int flag = 0;//在点击按钮才会有语音播报
  13. QString time_str;//时间字符串
  14. void Widget::timerEvent(QTimerEvent *event)
  15. {
  16. //显示系统时间
  17. QTime sys_time = QTime::currentTime();
  18. time_str = sys_time.toString("hh:mm:ss");
  19. ui->timeLabel->setText(time_str);
  20. //获取输入的时间,和系统时间比较
  21. QString setTime = ui->lineEdit->text();
  22. //时间到则语音播报label文本内容
  23. QTextToSpeech *tts = new QTextToSpeech(this);
  24. if(setTime == time_str && flag == 1)
  25. {
  26. for(int i = 1; i <= 5; i++)
  27. {
  28. tts->say(ui->showLabel->text());
  29. }
  30. ui->showLabel->setText("播报完毕,关闭闹钟");
  31. killTimer(id);
  32. }
  33. }
  34. Widget::~Widget()
  35. {
  36. delete ui;
  37. }
  38. void Widget::on_timeBtn_clicked()
  39. {
  40. if(ui->lineEdit->text() < time_str)
  41. {
  42. //设定时间小于当前时间
  43. int ret = QMessageBox::information(
  44. this,
  45. "提示",
  46. "设定时间小于当前时间,请重新设定!",
  47. QMessageBox::Ok);
  48. if(ret == QMessageBox::Ok)
  49. {
  50. //确认点击ok后,清空输入框
  51. ui->lineEdit->setText("");
  52. }
  53. }else{
  54. flag = 1;
  55. ui->showLabel->setText("时间到了");
  56. }
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/137364?site
推荐阅读
相关标签
  

闽ICP备14008679号