做网站的细节/那种网站怎么搜关键词
Qt环境下使用动画效果动态显示日期时间:
1,大部分的实现方式是使用ui设计,直接加载datetime的label;(关于这部分,帖子很多,不在详细描述)。
2,在开发过程中没有使用到.ui设计,所以想将datetime的label动态显示,测试后,通过GraphicsView里的QGraphicsProxyWidget进行实现,将Qlabel中的datetime,定时器每隔1s刷新一次。
代码实现:
主体类继承GraphicsView,并通过GraphicsView.setScene()显示。
(注,以下代码只摘抄主要实现部分,其余自行补充实现)
#include <QGraphicsScene>
#include <QLabel>
#include <QObject>QGraphicsProxyWidget *TimeWidget_;
QGraphicsProxyWidget *DateWidget_;
QLabel *TimeLabel_;
QLabel *DateLabel_; QTimer *dtTimer_ = new QTimer();
connect(dtTimer_, SIGNAL(timeout()), this, SLOT(OndtTime()));
dtTimer_->setTimerType(Qt::PreciseTimer);
dtTimer_->setInterval(1000);
dtTimer_->start(); void OndtTime()
{ if(TimeLabel_) {SAFE_RELEASE(TimeLabel_);TimeWidget_ = NULL;}if(DateLabel_){SAFE_RELEASE(DateLabel_);DateWidget_ = NULL;}QString format_ = "hh:mm yyyy年MM月dd日";QFont font;font.setFamily("黑体");if(TimeLabel_ == NULL){font.setPointSize(25);TimeLabel_ = new QLabel();TimeLabel_->setAttribute(Qt::WA_TranslucentBackground,true);TimeLabel_->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));TimeLabel_->setFont(font);TimeLabel_->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);TimeLabel_->setGeometry(1720,0,200,30);TimeWidget_ = addWidget(TimeLabel_);}if(DateLabel_ == NULL){font.setPointSize(18);DateLabel_ = new QLabel();DateLabel_->setAttribute(Qt::WA_TranslucentBackground,true);DateLabel_->setText(QDateTime::currentDateTime().toString("yyyy年MM月dd日"));DateLabel_->setFont(font);DateLabel_->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);DateLabel_->setGeometry(1720,30,200,30);DateWidget_ = addWidget(DateLabel_);}
}
执行结果:根据坐标分两行显示:第一行显示时间时:分:秒,第二行显示年月日。