groovy 方式 写的qt时钟代码
发布时间:2020-12-14 17:10:10 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /** * */package com.suziwenimport com.trolltech.qt.core.QPointimport com.trolltech.qt.core.QTimeimport com.trolltech.qt.core.QTimerimport co
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 /** * */ package com.suziwen import com.trolltech.qt.core.QPoint import com.trolltech.qt.core.QTime import com.trolltech.qt.core.QTimer import com.trolltech.qt.gui.QApplication import com.trolltech.qt.gui.QColor import com.trolltech.qt.gui.QHideEvent import com.trolltech.qt.gui.QPaintEvent import com.trolltech.qt.gui.QPainter import com.trolltech.qt.gui.QPen import com.trolltech.qt.gui.QPolygon import com.trolltech.qt.gui.QShowEvent import com.trolltech.qt.gui.QWidget /** * @author suziwen * */ class Clock extends QWidget { QTimer qtimer = new QTimer(); static def hourHand = new QPolygon([new QPoint(7,8),new QPoint(-7,new QPoint(0,-30)]); static def minuteHand = new QPolygon([new QPoint(7,-70)]); static def secondHand = new QPolygon([new QPoint(3,new QPoint(-3,-90)]); static def hourColor = new QColor(127,127); static def minuteColor = new QColor(0,129,129); static def secondColor = new QColor(0,100,100); Clock(){ super(); qtimer.timeout.connect(this,"update()"); } void hideEvent (QHideEvent event){ qtimer.stop(); } void showEvent(QShowEvent event){ qtimer.start(1000); } void paintEvent(QPaintEvent e){ def side = Math.min(this.width(),this.height()); def time = QTime.currentTime(); def painter = new QPainter(this); painter.translate(this.width()/2,this.height()/2); painter.setRenderHint(QPainter.RenderHint.Antialiasing); painter.scale(side/200,side/200); painter.setPen(QPen.NoPen); painter.setBrush(hourColor); painter.save(); painter.rotate(30.0*(time.hour() + time.minute()/60.0)); painter.drawConvexPolygon(hourHand); painter.restore(); painter.setPen(hourColor); for( def i in 0..12){ painter.drawLine(0,92,96); painter.rotate(30.0); } painter.setPen(QPen.NoPen); painter.setBrush(minuteColor); painter.save(); painter.rotate(6.0*(time.minute() + time.second()/60.0)); painter.drawConvexPolygon(minuteHand); painter.restore(); painter.setPen(minuteColor); for(def i in 0..60){ if(i % 5 != 0 ){ painter.drawLine(0,94,96); } painter.rotate(6.0); } painter.setPen(QPen.NoPen); painter.setBrush(secondColor); painter.save(); painter.rotate(6.0*time.second()); painter.drawConvexPolygon(secondHand); painter.restore(); } static main(args) { QApplication app = new QApplication(args); def clock = new Clock(); clock.resize(500,500); clock.show(); app.exec(); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |