赞
踩
时钟:
- #include "widget.h"
- #include "ui_widget.h"
-
- int hour=0;
- int min=0;
- int sec=0;
- int count=0;
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- this->setFixedSize(800,600);
- timer = new QTimer;
- timer->start(1000);
-
- //int count =0 ;
- connect(timer, &QTimer::timeout,[&](){
- count++;
- update();
- });
-
- //调用QTime的静态成员函数获取当前系统时间
- QTime sys_time = QTime::currentTime();
- //获取时分秒
- hour = sys_time.hour();
- min = sys_time.minute();
- sec=sys_time.second();
- //将时间类对象调用函数转化为字符串
- QString t =sys_time.toString("hh:mm:ss");
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
-
- void Widget::paintEvent(QPaintEvent *event)
- {
- //定义画家
- QPainter p(this);
- QPen pen(QColor("black"));
- pen.setWidth(3);
- QBrush b("white");
- p.setPen(pen);
- p.setBrush(b);
- p.translate(this->width()/2,this->height()/2);
- p.drawEllipse(QPoint(0,0),200,200);
- //使用画家绘制
- pen.setColor(QColor("black"));
- p.setPen(pen);
- for(int i=0;i<60;i++)
- {
- p.rotate(6);
- p.drawLine(QPoint(200,0),QPoint(195,0));
- }
-
- pen.setWidth(5);
- p.setPen(pen);
- for(int i=0;i<12;i++)
- {
- p.drawLine(QPoint(200,0),QPoint(190,0));
- p.rotate(30);
- p.drawText(QPoint(0,-170),QString("%1").arg(i+1));
- }
- //指针时针
- pen.setWidth(10);
- pen.setColor(QColor("red"));
- p.setPen(pen);
- p.rotate(hour*30+6*sec/60/12+30*min/60+6*count/6/12);
- p.drawLine(QPoint(0,-60),QPoint(0,5));
-
- //指针分针
- QPainter p1(this);
- p1.translate(this->width()/2,this->height()/2);
- pen.setWidth(8);
- pen.setColor(QColor("green"));
- p1.setPen(pen);
- p1.rotate(6*count/60+min*6+6*sec/60);
- p1.drawLine(QPoint(0,-100),QPoint(0,8));
-
-
- //指针秒针
- QPainter p2(this);
- p2.translate(this->width()/2,this->height()/2);
- pen.setWidth(6);
- pen.setColor(QColor("yellow"));
- p2.setPen(pen);
- p2.rotate(6*count+6*sec*6);
- p2.drawLine(QPoint(0,-150),QPoint(0,12));
- }
- #include "widget.h"
- #include "ui_widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- speecher = new QTextToSpeech(this);
- //实例化一个定时器
- timer = new QTimer(this);
- connect(timer,&QTimer::timeout,this,&Widget::timeout_slot);
- timer->start(1000);//1秒
- ui->evenB->setEnabled(false);
-
-
-
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
-
-
- //基于属性的按钮对应的槽函数
- void Widget::on_objB_clicked()
- {
-
- ui->evenB->setEnabled(true);
- ui->objB->setEnabled(false);
- ui->evenL->setEnabled(false);
- ui->textEdit->setEnabled(false);
-
- }
- //处理timeout信号对应的函数
- void Widget::timeout_slot()
- {
- //调用QTime的静态成员函数获取当前系统时间
- QTime sys_time = QTime::currentTime();
- //获取时分秒
- // int hour = sys_time.hour();
- // int min = sys_time.minute();
- // int sec=sys_time.second();
- //将时间类对象调用函数转化为字符串
- QString t =sys_time.toString("hh:mm:ss");
- ui->objL->setText(t);
- ui->objL->setAlignment(Qt::AlignCenter);
- ui->objL->setFont(QFont("楷体",20));
- if(!ui->objB->isEnabled())
- {
- if(ui->objL->text()==ui->evenL->text())
- {
- ui->evenL->setText("");
- ui->objB->setEnabled(true);
- ui->evenL->setEnabled(true);
- ui->evenB->setEnabled(false);
- ui->textEdit->setEnabled(true);
- QString text = ui->textEdit->toPlainText();
- speecher->say(text);
- }
- }
-
- }
- void Widget::on_evenB_clicked()
- {
-
- ui->objB->setEnabled(true);
- ui->evenL->setEnabled(true);
- ui->evenB->setEnabled(false);
- ui->textEdit->setEnabled(true);
- }
- //定时器事件处理函数的实现
- void Widget::timerEvent(QTimerEvent *event)
- {
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。