日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

python GUI庫圖形界面開發之PyQt5簡單繪圖板實例與代碼分析

瀏覽:126日期:2022-08-03 11:36:39

在PyQt中常用的圖像類有四種,QPixmap,QImage,QPicture,QBitmap

類型 描述 QPixmap 專門為繪圖設計的,在繪制圖片時需要使用QPixmap QImage 提供了一個與硬件無關的圖像表示函數,可以用于圖片像素級訪問 QPicture 是一個繪圖設備類,它繼承自QPainter類,可以使用QPainter的begin()函數在QPicture上繪圖,使用end()函數結束繪圖,使用QPicture的save()函數將QPainter所使用的繪圖指令保存在文件中 QBitmap 是一個繼承自QPixmap的簡單類,它提供了1bit深度的二值圖像的類,QBitmap提供的單色圖像,可以用來制作游標(QCursor),或者筆刷(QBrush) 簡單繪圖板實例

# -*- coding: utf-8 -*-import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QPainter, QPixmapfrom PyQt5.QtCore import Qt, QPointclass Winform(QWidget):def __init__(self, parent=None):super(Winform, self).__init__(parent)#設置標題self.setWindowTitle('繪圖例子')#實例化QPixmap類self.pix = QPixmap()#起點,終點self.lastPoint = QPoint()self.endPoint = QPoint()#初始化self.initUi()def initUi(self):# 窗口大小設置為600*500self.resize(600, 500)# 畫布大小為400*400,背景為白色self.pix = QPixmap(400, 400)self.pix.fill(Qt.white)def paintEvent(self, event):pp = QPainter(self.pix)# 根據鼠標指針前后兩個位置繪制直線pp.drawLine(self.lastPoint, self.endPoint)# 讓前一個坐標值等于后一個坐標值,# 這樣就能實現畫出連續的線self.lastPoint = self.endPointpainter = QPainter(self)#繪制畫布到窗口指定位置處painter.drawPixmap(0, 0, self.pix)def mousePressEvent(self, event):# 鼠標左鍵按下if event.button() == Qt.LeftButton:self.lastPoint = event.pos()self.endPoint = self.lastPointdef mouseMoveEvent(self, event):# 鼠標左鍵按下的同時移動鼠標if event.buttons() and Qt.LeftButton:self.endPoint = event.pos()# 進行重新繪制self.update()def mouseReleaseEvent(self, event):# 鼠標左鍵釋放if event.button() == Qt.LeftButton:self.endPoint = event.pos()# 進行重新繪制self.update()if __name__ == '__main__':app = QApplication(sys.argv)form = Winform()form.show()sys.exit(app.exec_())

運行效果圖如下

python GUI庫圖形界面開發之PyQt5簡單繪圖板實例與代碼分析

代碼分析

在這個例子中,實現了簡單的繪圖功能,按住鼠標左鍵在畫板上進行繪制,釋放鼠標左鍵結束繪圖

第一組代碼:初始化代碼

        #實例化QPixmap類

        self.pix = QPixmap()

        #起點,終點

        self.lastPoint = QPoint()

        self.endPoint = QPoint()

        #初始化

        self.initUi()

第二組代碼:重構paintEvent()函數

        def paintEvent(self, event):

        pp = QPainter(self.pix)

        # 根據鼠標指針前后兩個位置繪制直線

        pp.drawLine(self.lastPoint, self.endPoint)

        # 讓前一個坐標值等于后一個坐標值,

        # 這樣就能實現畫出連續的線

        self.lastPoint = self.endPoint

        painter = QPainter(self)

        #繪制畫布到窗口指定位置處

        painter.drawPixmap(0, 0, self.pix)

第三組代碼:重構mousePressEvent()函數,使用兩個點來繪制線條,這兩個點從下面的鼠標事件中獲取

 def mousePressEvent(self, event):

        # 鼠標左鍵按下

        if event.button() == Qt.LeftButton:

            self.lastPoint = event.pos()

            self.endPoint = self.lastPoint

第四組代碼:重構mouseMoveEvent()函數,當鼠標左鍵把按下時獲得開始點,每次繪制,都讓結束點和開始點重合,這樣確保這兩個點的值都是預期值

    def mouseMoveEvent(self, event):

        # 鼠標左鍵按下的同時移動鼠標

        if event.buttons() and Qt.LeftButton:

            self.endPoint = event.pos()

            # 進行重新繪制

            self.update()

第五組代碼:重構mouseReleaseEvent()函數,當鼠標指針移動時獲得結束點,并更新繪制,注意,這里的button()函數可以獲取在鼠標指針移動過程中按下的所有按鍵,然后用Qt.LeftButton來判斷是否按下了左鍵,在mouseMoveEvent()中必須使用該函數來判斷按下的鼠標按鍵,最后調用update()函數,會執行paintEvent()函數進行重新繪制

    def mouseReleaseEvent(self, event):

        # 鼠標左鍵釋放

        if event.button() == Qt.LeftButton:

            self.endPoint = event.pos()

            # 進行重新繪制

            self.update()

當釋放鼠標時,也會進行繪制,現在運行程序,按下鼠標左鍵在白色畫布上進行繪制,實現了簡單的涂鴉板功能

本文介紹了PyQt5利用QPixmap,QImage,QPicture,QBitmap實現簡單畫板的實例,更多關于PyQt5圖形圖像知識請查看下面的相關鏈接

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
首页国产精品| 国产精品13p| 日韩一区二区三区精品| 日本色综合中文字幕| 精品一区二区三区在线观看视频| 9999国产精品| 五月天久久网站| 日韩中文字幕无砖| 精品一区二区三区四区五区| 伊人久久国产| 免费成人在线观看| 国产精品久久| 欧美sss在线视频| 中文字幕一区二区av| 久久中文字幕导航| 欧美日韩精品一本二本三本 | 荡女精品导航| 欧美日中文字幕| 日本vs亚洲vs韩国一区三区二区| 国内一区二区三区| 亚洲欧洲一区二区天堂久久| 青青草精品视频| 香蕉久久99| 久久狠狠久久| 久久国产亚洲精品| 日韩av中文字幕一区二区三区| 国产一区二区色噜噜| 亚洲综合不卡| 久久免费精品| 香蕉久久夜色精品国产| 久久wwww| 天使萌一区二区三区免费观看| 国产精品白丝一区二区三区| 亚洲激情中文在线| 久久精品一区二区国产| 在线精品小视频| 久久一区亚洲| 久久亚洲欧美| 日韩成人精品一区二区| 亚洲精品系列| 三上悠亚国产精品一区二区三区| 日本精品久久| 国产亚洲一区在线| 亚洲国产影院| 欧美日韩精品一区二区三区视频| 黄色在线观看www| 久久国产99| 男女精品网站| 欧美一区成人| 久久亚洲在线| 欧美日韩夜夜| 亚洲黄色在线| 日韩不卡一区| 国产精品久久久久av蜜臀| 亚洲一区二区网站| 精品久久免费| 亚洲日本免费电影| 欧美成人a交片免费看| 免费成人在线观看| 9久re热视频在线精品| 一区二区电影| 久久人人99| 国产黄大片在线观看| 欧美精品国产一区| 亚洲精品观看| 免费毛片在线不卡| 国产精品成久久久久| 久久国产欧美日韩精品| 久久亚洲一区| 伊人久久大香线蕉av超碰演员| 国产白浆在线免费观看| 国产精品视频一区二区三区综合| 三级亚洲高清视频| 日韩视频在线一区二区三区| 91精品一区二区三区综合在线爱 | 日韩精品一卡二卡三卡四卡无卡| 999国产精品视频| 亚洲精品成人图区| 欧美天堂一区二区| 日韩一区二区三区免费视频 | 亚洲资源在线| 模特精品在线| 夜久久久久久| 亚洲视频综合| 91精品一区国产高清在线gif | 日韩精品五月天| 蜜桃视频一区二区| 亚洲综合欧美| 欧美中文字幕| 国产一区丝袜| 日韩不卡一二三区| 免费视频久久| 99久久精品网站| 国产suv精品一区| 国产亚洲电影| 日韩高清在线不卡| 视频精品一区二区| 国产精品视区| 欧美 日韩 国产一区二区在线视频| 69堂精品视频在线播放| 亚洲美女久久| 日本亚洲最大的色成网站www| 日韩区欧美区| 日韩在线网址| 国产亚洲精品美女久久久久久久久久| 久久国产精品色av免费看| 国产精品v一区二区三区| 麻豆国产91在线播放| 国产成人精品免费视| 91欧美日韩| 日韩欧美一区二区三区在线观看 | 中文精品在线| 免费不卡在线视频| 日韩av不卡在线观看| 国产精品亚洲综合久久| 精品久久电影| 色婷婷精品视频| 自由日本语亚洲人高潮| 在线亚洲自拍| 色8久久久久| 国产精品色在线网站| 日韩.com| 免费久久精品| 亚洲aⅴ网站| 精品欠久久久中文字幕加勒比| 蜜臀国产一区| 伊人成人网在线看| 日韩高清三区| 精品五月天堂| 久久精品国产99久久| 日韩在线播放一区二区| 日韩国产在线观看| 三上亚洲一区二区| 国产亚洲在线| 国产欧美日韩一区二区三区在线| 成人在线超碰| 亚洲一卡久久| 国产精品红桃| 999久久久精品国产| 蜜臀va亚洲va欧美va天堂| 国产精品白浆| 日韩成人亚洲| 亚洲欧美一级| 国产一区二区三区黄网站| 国产精品7m凸凹视频分类| 日韩欧美中文字幕在线视频| 国产精品久久久久久久免费观看 | 国产精品午夜av| 亚洲精品在线影院| 亚洲免费观看高清完整版在线观| 精品久久久久久久| 最新亚洲激情| 欧美经典一区| 亚洲一区二区三区高清| 国产欧美日韩一级| 亚洲成人精品| 国产毛片久久久| 香蕉精品久久| 国产精品网址| 国产精品日本| 一区二区精品伦理...| 丝袜美腿高跟呻吟高潮一区| 久久精品一本| 日韩中文字幕麻豆| 六月婷婷综合| 三级久久三级久久久| 色在线中文字幕| 日本国产欧美| 久久精品影视| 亚洲久久视频| 国产在线观看www| 色8久久久久| 久久激情中文| 国产欧美视频在线| 99riav1国产精品视频| 国内精品麻豆美女在线播放视频| 午夜一区在线| 日本午夜大片a在线观看| 日本三级亚洲精品| 中文国产一区| 色综合www| 欧美激情麻豆| 日本中文字幕一区二区视频| 久久亚洲国产| 蜜桃久久久久| 视频在线观看一区二区三区| av免费不卡国产观看| 91精品尤物| 2023国产精品久久久精品双| 久久婷婷国产| 日韩精品一区二区三区免费视频 | 日本a口亚洲| 黄色日韩在线| 一区二区三区四区日本视频| 亚洲精品婷婷| 亚洲作爱视频| 日韩另类视频| 美女精品视频在线| 免费看精品久久片| 亚洲欧美伊人|