亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發之PyQt5不規則窗口實現與顯示GIF動畫的詳細方法與實例

瀏覽:7日期:2022-08-03 11:29:34
PyQt5不規則窗口實現動畫效果實例

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class ShapeWidget(QWidget): def __init__(self,parent=None): super(ShapeWidget, self).__init__(parent) self.i=1 self.mypix() self.timer=QTimer() self.timer.setInterval(500) self.timer.timeout.connect(self.timeChanged) self.timer.start() #顯示不規則圖片 def mypix(self): self.update() if self.i==5: self.i=1 self.mypic={1:’./images/left.png’,2:’./images/up.png’,3:’./images/right.png’,4:’./images/down.png’} self.pix=QPixmap(self.mypic[self.i],’0’,Qt.AvoidDither|Qt.ThresholdAlphaDither|Qt.ThresholdDither) self.resize(self.pix.size()) self.setMask(self.pix.mask()) self.dragPosition=None def mousePressEvent(self, QMouseEvent): if QMouseEvent.button()==Qt.LeftButton: self.m_drag=True self.m_DragPosition=QMouseEvent.globalPos()-self.pos() QMouseEvent.accept() self.setCursor(QCursor(Qt.OpenHandCursor)) def mouseMoveEvent(self, QMouseEvent): if Qt.LeftButton and self.m_drag: self.move(QMouseEvent.globalPos()-self.m_DragPosition) QMouseEvent.accept() def mouseReleaseEvent(self, QMouseEvent): self.m_drag=False self.setCursor(QCursor(Qt.ArrowCursor)) def paintEvent(self, QPaintEvent): painter=QPainter(self) painter.drawPixmap(0,0,self.pix.width(),self.pix.height(),self.pix) def mouseDoubleClickEvent(self, QMouseEvent): if QMouseEvent.button()==1: self.i+=1 self.mypix() def timeChanged(self): self.i+=1 self.mypix()if __name__ == ’__main__’: app=QApplication(sys.argv) form=ShapeWidget() form.show() sys.exit(app.exec_())

運行程序,效果如下

python GUI庫圖形界面開發之PyQt5不規則窗口實現與顯示GIF動畫的詳細方法與實例python GUI庫圖形界面開發之PyQt5不規則窗口實現與顯示GIF動畫的詳細方法與實例python GUI庫圖形界面開發之PyQt5不規則窗口實現與顯示GIF動畫的詳細方法與實例

代碼分析

運行這個例子,會彈出一個窗口,顯示不同方向的箭頭,每0.5秒改變一次方向

pixmap.setMask()函數的作用是為調用它的控件增加一個遮罩,遮住所選區域以外的地方,使控件看起來是透明的,它的參數是一個QBitmap對象或一個QRegion對象

本例中調用QPixmap實例的self.pix.mask()函數獲得圖片自身的遮罩,這個遮罩是一個QBitmap對象

 self.pix=QPixmap(self.mypic[self.i],’0’,Qt.AvoidDither|Qt.ThresholdAlphaDither|Qt.ThresholdDither)

        self.resize(self.pix.size())

        self.setMask(self.pix.mask())

paintEvent()函數每次初始化窗口時只調用一次,所以沒加載一次圖片就要重新調用一次paintEvent()函數,即在更新窗口時調用這個函數,更新窗口的核心代碼如下

        self.timer=QTimer()

        self.timer.setInterval(500)

        self.timer.timeout.connect(self.timeChanged)

        self.timer.start()

當定時器的時間到期后更新窗口代碼

self.update

PyQt5加載GIF動畫實例

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class LoadingGifWin(QWidget): def __init__(self,parent=None): super(LoadingGifWin, self).__init__(parent) #實例化標簽到窗口中 self.label=QLabel(’’,self) #設置標簽的寬度與高度 self.setFixedSize(128,128) #設置無邊框 self.setWindowFlags(Qt.Dialog | Qt.CustomizeWindowHint) self.movie=QMovie(’./images/loading.gif’) self.label.setMovie(self.movie) self.movie.start()if __name__ == ’__main__’: app=QApplication(sys.argv) load=LoadingGifWin() load.show() sys.exit(app.exec_())

運行效果

python GUI庫圖形界面開發之PyQt5不規則窗口實現與顯示GIF動畫的詳細方法與實例

本文主要講解了PyQt5實現窗口動畫的兩種方法,推薦第2種PyQt5加載顯示GIF動畫方法,想了解更多關于PyQt5窗口知識請查看下面的相關鏈接

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 成人免费观看黄a大片夜月 成人免费体验区福利云点播 | 国产主播一区二区 | 国产v精品成人免费视频400条 | 精品国产免费一区二区 | 在线免费观看网站入口在哪 | 日韩亚洲制服丝袜中文字幕 | 公妇乱淫日本免费观看 | 日韩精品a在线视频 | 丝袜足交在线播放 | 激情丝袜欧美专区在线观看 | 亚洲国产福利精品一区二区 | 婷婷久久五月天 | 亚洲日韩欧美视频 | 中国美女做爰视频高清 | 欧美黑人巨大肥婆性视频 | 精品一区二区三区五区六区 | 国产在线91区精品 | 在线视频亚洲色图 | 亚洲在线视频一区 | 小泽玛利亚在线精品一区二区 | 青青国产成人久久91网站站 | 国产精品偷伦视频免费手机播放 | 桃花综合| 亚洲欧美日韩中文字幕一区二区三区 | 成人开心激情 | 日韩a在线播放 | 久久久久亚洲精品美女 | 久草手机视频在线观看 | 色屁屁一区二区三区视频国产 | 欧美综合视频在线观看 | 欧美黑人两根巨大挤入 | 自拍 亚洲 欧美 | 中文字幕色综合久久 | 国内精品一区二区 | 成人夜色视频在线观看网站 | 免费看三级毛片 | 农村黄a三级三级三级 | 日韩小视频网站 | 一区在线免费观看 | 国产成人综合亚洲欧美在线n | 欧美日本国产 |