时钟:
#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));
}
time
#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)
{}