当前位置:   article > 正文

QT DAY 4

QT DAY 4

 时钟:

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. int hour=0;
  4. int min=0;
  5. int sec=0;
  6. int count=0;
  7. Widget::Widget(QWidget *parent)
  8. : QWidget(parent)
  9. , ui(new Ui::Widget)
  10. {
  11. ui->setupUi(this);
  12. this->setFixedSize(800,600);
  13. timer = new QTimer;
  14. timer->start(1000);
  15. //int count =0 ;
  16. connect(timer, &QTimer::timeout,[&](){
  17. count++;
  18. update();
  19. });
  20. //调用QTime的静态成员函数获取当前系统时间
  21. QTime sys_time = QTime::currentTime();
  22. //获取时分秒
  23. hour = sys_time.hour();
  24. min = sys_time.minute();
  25. sec=sys_time.second();
  26. //将时间类对象调用函数转化为字符串
  27. QString t =sys_time.toString("hh:mm:ss");
  28. }
  29. Widget::~Widget()
  30. {
  31. delete ui;
  32. }
  33. void Widget::paintEvent(QPaintEvent *event)
  34. {
  35. //定义画家
  36. QPainter p(this);
  37. QPen pen(QColor("black"));
  38. pen.setWidth(3);
  39. QBrush b("white");
  40. p.setPen(pen);
  41. p.setBrush(b);
  42. p.translate(this->width()/2,this->height()/2);
  43. p.drawEllipse(QPoint(0,0),200,200);
  44. //使用画家绘制
  45. pen.setColor(QColor("black"));
  46. p.setPen(pen);
  47. for(int i=0;i<60;i++)
  48. {
  49. p.rotate(6);
  50. p.drawLine(QPoint(200,0),QPoint(195,0));
  51. }
  52. pen.setWidth(5);
  53. p.setPen(pen);
  54. for(int i=0;i<12;i++)
  55. {
  56. p.drawLine(QPoint(200,0),QPoint(190,0));
  57. p.rotate(30);
  58. p.drawText(QPoint(0,-170),QString("%1").arg(i+1));
  59. }
  60. //指针时针
  61. pen.setWidth(10);
  62. pen.setColor(QColor("red"));
  63. p.setPen(pen);
  64. p.rotate(hour*30+6*sec/60/12+30*min/60+6*count/6/12);
  65. p.drawLine(QPoint(0,-60),QPoint(0,5));
  66. //指针分针
  67. QPainter p1(this);
  68. p1.translate(this->width()/2,this->height()/2);
  69. pen.setWidth(8);
  70. pen.setColor(QColor("green"));
  71. p1.setPen(pen);
  72. p1.rotate(6*count/60+min*6+6*sec/60);
  73. p1.drawLine(QPoint(0,-100),QPoint(0,8));
  74. //指针秒针
  75. QPainter p2(this);
  76. p2.translate(this->width()/2,this->height()/2);
  77. pen.setWidth(6);
  78. pen.setColor(QColor("yellow"));
  79. p2.setPen(pen);
  80. p2.rotate(6*count+6*sec*6);
  81. p2.drawLine(QPoint(0,-150),QPoint(0,12));
  82. }

 

time

  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. speecher = new QTextToSpeech(this);
  9. //实例化一个定时器
  10. timer = new QTimer(this);
  11. connect(timer,&QTimer::timeout,this,&Widget::timeout_slot);
  12. timer->start(1000);//1秒
  13. ui->evenB->setEnabled(false);
  14. }
  15. Widget::~Widget()
  16. {
  17. delete ui;
  18. }
  19. //基于属性的按钮对应的槽函数
  20. void Widget::on_objB_clicked()
  21. {
  22. ui->evenB->setEnabled(true);
  23. ui->objB->setEnabled(false);
  24. ui->evenL->setEnabled(false);
  25. ui->textEdit->setEnabled(false);
  26. }
  27. //处理timeout信号对应的函数
  28. void Widget::timeout_slot()
  29. {
  30. //调用QTime的静态成员函数获取当前系统时间
  31. QTime sys_time = QTime::currentTime();
  32. //获取时分秒
  33. // int hour = sys_time.hour();
  34. // int min = sys_time.minute();
  35. // int sec=sys_time.second();
  36. //将时间类对象调用函数转化为字符串
  37. QString t =sys_time.toString("hh:mm:ss");
  38. ui->objL->setText(t);
  39. ui->objL->setAlignment(Qt::AlignCenter);
  40. ui->objL->setFont(QFont("楷体",20));
  41. if(!ui->objB->isEnabled())
  42. {
  43. if(ui->objL->text()==ui->evenL->text())
  44. {
  45. ui->evenL->setText("");
  46. ui->objB->setEnabled(true);
  47. ui->evenL->setEnabled(true);
  48. ui->evenB->setEnabled(false);
  49. ui->textEdit->setEnabled(true);
  50. QString text = ui->textEdit->toPlainText();
  51. speecher->say(text);
  52. }
  53. }
  54. }
  55. void Widget::on_evenB_clicked()
  56. {
  57. ui->objB->setEnabled(true);
  58. ui->evenL->setEnabled(true);
  59. ui->evenB->setEnabled(false);
  60. ui->textEdit->setEnabled(true);
  61. }
  62. //定时器事件处理函数的实现
  63. void Widget::timerEvent(QTimerEvent *event)
  64. {
  65. }

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

闽ICP备14008679号