日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用PyQt实现透明桌面时钟小部件

發(fā)布時(shí)間:2023/11/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用PyQt实现透明桌面时钟小部件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- ''' Created?on?2012-4-6@author:?wangxiao ''' import?sys from?PyQt4?import??QtGui,?QtCore?? from?PyQt4.QtCore?import?Qt from?PyQt4.QtCore?import?QPoint from?PyQt4.QtCore?import?QTimer from?PyQt4.QtCore?import?QTime? from?PyQt4.QtGui?import?QPainter from?PyQt4.QtGui?import?QColor? from?PyQt4.QtGui?import?QPolygon from?PyQt4.QtCore?import?SIGNAL?as?signal class?Clock(QtGui.QWidget):'''classdocs'''def?__init__(self):'''Constructor'''super(Clock,?self).__init__()??self.hourColor?=?QColor(127,?0,?127);self.minuteColor?=?QColor(0,?127,?127,?191)self.secondColor?=?QColor(127,?127,?0,?120)self.initUI()self.timer?=?QTimer()self.timer.timeout.connect(self.update)self.timer.start(30)?self.show()?def?handChange(self):????self.side?=?min(self.width(),?self.height())self.hand?=?(max(self.side?/?200,?4),?max(self.side?/?100,?8),?max(self.side?/?40,?30))self.hourHand?=?QPolygon([QPoint(self.hand[0],?self.hand[1]),?QPoint(-self.hand[0],?self.hand[1]),?QPoint(0,?-self.hand[2])])self.minuteHand?=?QPolygon([QPoint(self.hand[0],?self.hand[1]),?QPoint(-self.hand[0],?self.hand[1]),?QPoint(0,?-self.hand[2]?*?2)])self.secondHand?=?QPolygon([QPoint(self.hand[0],?self.hand[1]),?QPoint(-self.hand[0],?self.hand[1]),?QPoint(0,?-self.hand[2]?*?3)])?def?set_transparency(self,?enabled):if?enabled:self.setAutoFillBackground(False)else:self.setAttribute(Qt.WA_NoSystemBackground,?False)#?下面這種方式好像不行 #????????pal=QtGui.QPalette() #????????pal.setColor(QtGui.QPalette.Background,?QColor(127,?127,10,120)) #????????self.setPalette(pal)?self.setAttribute(Qt.WA_TranslucentBackground,?enabled)self.repaint()def?initUI(self):??????self.setGeometry(300,?300,?300,?200)self.setWindowTitle('Clock')self.handChange()self.rightButton?=?False#?下面兩個(gè)配合實(shí)現(xiàn)窗體透明和置頂sizeGrip?=?QtGui.QSizeGrip(self)self.setWindowFlags(Qt.FramelessWindowHint?|?Qt.WindowStaysOnTopHint?|?Qt.SubWindow)?#?self.setMouseTracking(True);self.trans?=?Trueself.set_transparency(True)?quitAction?=?QtGui.QAction(QtGui.QIcon('quit.png'),?'&Quit',?self)self.connect(quitAction,?signal("triggered()"),?QtGui.qApp.quit)backAction?=?QtGui.QAction('&Back',?self)self.connect(backAction,?signal("triggered()"),?self.backClicked)self.popMenu?=?QtGui.QMenu()?self.popMenu.addAction(quitAction)?self.popMenu.addAction(backAction)?def?resizeEvent(self,?e):??self.handChange()def?backClicked(self):if?self.trans?==?True?:self.trans?=?False?self.set_transparency(False)else:?self.trans?=?Trueself.set_transparency(True)def?mouseReleaseEvent(self,?e):?if?self.rightButton?==?True:self.rightButton?=?Falseself.popMenu.popup(e.globalPos())def?mouseMoveEvent(self,?e):if?e.buttons()?&?Qt.LeftButton:self.move(e.globalPos()?-?self.dragPos)e.accept()def?mousePressEvent(self,?e):if?e.button()?==?Qt.LeftButton:?self.dragPos?=?e.globalPos()?-?self.frameGeometry().topLeft()?e.accept()if?e.button()?==?Qt.RightButton?and?self.rightButton?==?False:self.rightButton?=?Truedef?paintEvent(self,?e):?time?=?QTime.currentTime()?qp?=?QPainter()qp.begin(self)#?qp.setRenderHint(QPainter.Antialiasing)??#?開啟這個(gè)抗鋸齒,會(huì)很占cpu的!qp.translate(self.width()?/?2,?self.height()?/?2)?qp.scale(self.side?/?200.0,?self.side?/?200.0)qp.setPen(QtCore.Qt.NoPen)qp.setBrush(self.hourColor)qp.save()qp.rotate(30.0?*?((time.hour()?+?time.minute()?/?60.0)))qp.drawConvexPolygon(self.hourHand)qp.restore()qp.setPen(self.hourColor)for?i?in?range(12):?qp.drawLine(88,?0,?96,?0)qp.rotate(30.0)?qp.setPen(QtCore.Qt.NoPen)qp.setBrush(self.minuteColor)qp.save()qp.rotate(6.0?*?((time.minute()?+?(time.second()?+?time.msec()?/?1000.0)?/?60.0)))qp.drawConvexPolygon(self.minuteHand)qp.restore()qp.setPen(self.minuteColor)for?i?in?range(60):?if?(i?%?5)?is?not?0:qp.drawLine(92,?0,?96,?0)qp.rotate(6.0)?qp.setPen(QtCore.Qt.NoPen)qp.setBrush(self.secondColor)qp.save()qp.rotate(6.0?*?(time.second()?+?time.msec()?/?1000.0))qp.drawConvexPolygon(self.secondHand)qp.restore()?qp.end()? if?__name__?==?'__main__':app?=?QtGui.QApplication(sys.argv)clock?=?Clock()sys.exit(app.exec_())


轉(zhuǎn)載于:https://my.oschina.net/yzbty32/blog/475727

總結(jié)

以上是生活随笔為你收集整理的用PyQt实现透明桌面时钟小部件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。