資源簡介
Qt實現電力組態軟件
代碼片段和文件信息
#include?
#include?“analogclock.h“
AnalogClock::AnalogClock(QWidget*?parent)?:?QWidget(parent)
{
QTimer*?timer?=?new?QTimer(this);
connect(timer?SIGNAL(timeout())?this?SLOT(update()));
timer->start(500);
setWindowtitle(tr(“Analog?Clock“));
resize(100?100);
m_pDigClk?=?new?QLCDNumber(this);
m_pDigClk->setSegmentstyle(QLCDNumber::Flat);
m_pDigClk->setNumDigits(14);
m_pDigClk->setMaximumHeight(30);
}
void?AnalogClock::paintEvent(QPaintEvent*)
{
if?(qMin(width()?height())?80)
{
m_pDigClk->show();
QDateTime?date?=?QDateTime::currentDateTime();
QString?dtext?=?date.toString(“MM-dd?hh?mm:ss“);
/* if?(date.time().second()%2?==?0)
{
dtext[11]?=?‘?‘;
}
*/
m_pDigClk->display(dtext);
return;
}
m_pDigClk->hide();
static?const?QPoint?hourHand[3]?=
{
QPoint(7?8)?QPoint(-7?8)?QPoint(0?-40)
};
static?const?QPoint?minuteHand[3]?=
{
QPoint(7?8)?QPoint(-7?8)?QPoint(0?-70)
};
static?const?QPoint?secondHand[3]?=
{
QPoint(3?4)?QPoint(-3?4)?QPoint(0?-80)
};
QColor?hourColor(127?0?127);
QColor?minuteColor(0?127?127?191);
QColor?secondColor(127?127?0?191);
float?side?=?qMin(width()?height());
QTime?time?=?QTime::currentTime();
QPainter?painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.translate(width()?/?2?height()?/?2);
painter.scale(side?/?200.0?side?/?200.0);
painter.setPen(Qt::NoPen);
painter.setBrush(hourColor);
painter.save();
painter.rotate(30.0?*?((time.hour()?+?time.minute()?/?60.0)));
painter.drawConvexPolygon(hourHand?3);
painter.restore();
painter.setPen(hourColor);
for?(int?i?=?0;?i?12;?++i)
{
painter.drawLine(88?0?96?0);
painter.rotate(30.0);
}
painter.setPen(Qt::NoPen);
painter.setBrush(minuteColor);
painter.save();
painter.rotate(6.0?*?(time.minute()?+?time.second()?/?60.0));
painter.drawConvexPolygon(minuteHand?3);
painter.restore();
painter.setPen(minuteColor);
for?(int?j?=?0;?j?60;?++j)
{
if?((j?%?5)?!=?0)
painter.drawLine(92?0?96?0);
painter.rotate(6.0);
}
painter.setBrush(secondColor);
painter.setPen(secondColor);
painter.save();
painter.rotate(6.0?*?time.second());
painter.drawConvexPolygon(secondHand?3);
painter.restore();
}
- 上一篇:仿微信彈出“生日快樂”類動畫
- 下一篇:坦克大戰素材包
評論
共有 條評論