• QT学习day4


     作业:做一个闹钟

    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. //给定时器指针实例化一个对象
    9. timer = new QTimer(this);
    10. //给语音播报者实例化一个空间
    11. speecher = new QTextToSpeech(this);
    12. //将该定时器的timeout信号链接到自定义的槽函数中
    13. //connect(timer,&QTimer::timeout,this,&Widget::timeout_slot);
    14. this->setWindowTitle("闹钟小能手");
    15. this->setWindowIcon(QIcon(":/pictrue/R-C.png"));
    16. //窗口
    17. QPixmap background(":/pictrue/bd315c6034a85edf9c8a4d994f540923dd547501.jpg");
    18. // 创建一个QPalette对象,并将背景图像设置为窗口背景
    19. QPalette palette;
    20. palette.setBrush(this->backgroundRole(), QBrush(background));
    21. this->setPalette(palette);
    22. // 将窗口的背景模式设置为固定尺寸
    23. this->setAutoFillBackground(true);
    24. /********************************************************************************/
    25. // //设置闹钟背景
    26. // // ui->Qlable->setPixmap(QPixmap(":/pictrue/bd315c6034a85edf9c8a4d994f540923dd547501.jpg"));
    27. // // //自动适应标签
    28. // // ui->Qlable->setScaledContents(true);
    29. //按钮设计
    30. ui->btn1->setIcon(QIcon(":/pictrue/R-C.png"));
    31. ui->btn1->setWindowOpacity(0.9);
    32. ui->btn2->setIcon(QIcon(":/pictrue/R-C.jfif"));
    33. //标签设计
    34. ui->Lable1->setPixmap(QPixmap(":/pictrue/R-C.png"));
    35. //自动适应标签
    36. ui->Lable1->setScaledContents(true);
    37. ui->Lable1->setWindowOpacity(0.9);
    38. //标签设计
    39. ui->Lable2->setPixmap(QPixmap(":/pictrue/R-C.jfif"));
    40. //自动适应标签
    41. ui->Lable2->setScaledContents(true);
    42. ui->Lable2->setWindowOpacity(0.9);
    43. }
    44. Widget::~Widget()
    45. {
    46. delete ui;
    47. }
    48. void Widget::timerEvent(QTimerEvent *e)//定时器处理事件
    49. {
    50. if(e->timerId()==timer_id)
    51. {
    52. QTime s=QTime::currentTime();//获取系统时间
    53. //将QTime类对象转换为字符串
    54. QString t=s.toString("hh:mm:ss");
    55. //展示到ui界面
    56. ui->Lable1->setText(t);
    57. //居中显示
    58. ui->Lable1->setAlignment(Qt::AlignCenter);
    59. //设置字体
    60. // 创建一个字体对象
    61. QFont font("Arial", 30, QFont::Bold);
    62. // 设置标签的字体
    63. ui->Lable1->setFont(font);
    64. //接收输入的文本
    65. QString v = ui->lineEdit->text();
    66. if(t==v)
    67. {
    68. //speecher->say(ui->Lable3->text());
    69. int i=0;//播报十遍
    70. while( i=10)
    71. {
    72. speecher->say(ui->textEdit->toPlainText());
    73. i++;
    74. }
    75. }
    76. }
    77. }
    78. void Widget::on_btn1_clicked()//启动按钮
    79. {
    80. //启动一个定时器,超过时间和自动调用定时器事件处理函数
    81. timer_id=this->startTimer(1000);
    82. }
    83. void Widget::on_btn2_clicked()//停止按钮
    84. {
    85. //关闭给定的定时器
    86. this->killTimer(timer_id);
    87. }

    效果图: 

     

  • 相关阅读:
    从阿里、头条面试回来,面试官最喜欢问的 Jvm 和 Redis 你了解多少?
    问一下ChatGPT如何学习开发iOS应用程序
    树莓派i2c通讯 设置 和 查看 i2c通信地址方法
    有序表2:跳表
    HTTPS协议
    数据分析学习记录(二)---响应曲面法及Design-Expert的简单使用
    ChatGPT追祖寻宗:GPT-3技术报告要点解读
    Python-Django 项目模块-自带表单Form的使用(十一)
    【无标题】
    (C语言)fscanf与fprintf函数详解
  • 原文地址:https://blog.csdn.net/m0_69894626/article/details/133954783