博客首页 注册 建议与交流 排行榜 加入友情链接         宝宝相册的专门空间
推荐 投诉 搜索: 帮助

愿逝者安息 让生者前行 深切哀悼5.12遇难同胞

愿逝者安息 让生者前行 深切哀悼5.12遇难同胞
creatory.cublog.cn


改写模拟时钟代码
改写模拟时钟代码:
#include <QWidget>
#include <QApplication>
#include <QPainter>
#include <QTime>
#include <QTimer>
#include <QVariant>
class MyWidget:public QWidget
{
public:
MyWidget();
protected:
void paintEvent(QPaintEvent *event);
QTimer *timer;
};
MyWidget::MyWidget()
{
timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(update()));
timer->start(1000);
resize(200,200);
setWindowTitle(tr("Clock"));
}
void MyWidget::paintEvent(QPaintEvent *)
{
QTime time=QTime::currentTime();
QPainter painter(this);
painter.translate(width()/2,height()/2);
painter.setRenderHint(QPainter::Antialiasing);
int side=qMin(width(),height());
painter.scale(side/200.0,side/200.0);
painter.drawText(-20,-80,QVariant(time).toString());
static const QPoint hourHand[3] = {
QPoint(-7, 8),
QPoint(7, 8),
QPoint(0, -40)
};
painter.save();
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::blue);
painter.rotate(30*((time.hour()+time.minute()/60.0)));
painter.drawConvexPolygon(hourHand, 3);
painter.restore();
for(int i=0;i<12;++i)
{
painter.drawLine(90,0,100,0);
painter.rotate(30.0);
}
static const QPoint minuteHand[3]=
{
QPoint(-7,8),
QPoint(7,8),
QPoint(0,-70)
};
painter.setBrush(QColor(0,127,127,100));
for(int j=0;j<60;++j)
{
if((j%5)!=0)
painter.drawLine(80,0,90,0);
painter.rotate(6.0);
}
painter.save();
painter.setBrush(QColor(127,127,100));
painter.rotate(6.0*(time.minute()+time.second()/60.0));
painter.drawConvexPolygon(minuteHand,3);
painter.restore();
static const QPoint secondHand[3]=
{
QPoint(-7,8),
QPoint(7,8),
QPoint(0,-90)
};
painter.save();
painter.setBrush(QColor(255,0,0,190));
painter.rotate(6.0*(time.second()));
painter.drawConvexPolygon(secondHand,3);
painter.restore();
}

int main(int argc,char **argv)
{
QApplication app(argc,argv);
MyWidget s;
s.show();
return app.exec();
}

发表于: 2008-04-27 ,修改于: 2008-04-27 10:35,已浏览95次,有评论0条 推荐 投诉


网友评论

发表评论