成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

python GUI庫圖形界面開發(fā)之PyQt5簡(jiǎn)單繪圖板實(shí)例與代碼分析

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

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

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

# -*- 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)#設(shè)置標(biāo)題self.setWindowTitle('繪圖例子')#實(shí)例化QPixmap類self.pix = QPixmap()#起點(diǎn),終點(diǎn)self.lastPoint = QPoint()self.endPoint = QPoint()#初始化self.initUi()def initUi(self):# 窗口大小設(shè)置為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)# 根據(jù)鼠標(biāo)指針前后兩個(gè)位置繪制直線pp.drawLine(self.lastPoint, self.endPoint)# 讓前一個(gè)坐標(biāo)值等于后一個(gè)坐標(biāo)值,# 這樣就能實(shí)現(xiàn)畫出連續(xù)的線self.lastPoint = self.endPointpainter = QPainter(self)#繪制畫布到窗口指定位置處painter.drawPixmap(0, 0, self.pix)def mousePressEvent(self, event):# 鼠標(biāo)左鍵按下if event.button() == Qt.LeftButton:self.lastPoint = event.pos()self.endPoint = self.lastPointdef mouseMoveEvent(self, event):# 鼠標(biāo)左鍵按下的同時(shí)移動(dòng)鼠標(biāo)if event.buttons() and Qt.LeftButton:self.endPoint = event.pos()# 進(jìn)行重新繪制self.update()def mouseReleaseEvent(self, event):# 鼠標(biāo)左鍵釋放if event.button() == Qt.LeftButton:self.endPoint = event.pos()# 進(jìn)行重新繪制self.update()if __name__ == '__main__':app = QApplication(sys.argv)form = Winform()form.show()sys.exit(app.exec_())

運(yùn)行效果圖如下

python GUI庫圖形界面開發(fā)之PyQt5簡(jiǎn)單繪圖板實(shí)例與代碼分析

代碼分析

在這個(gè)例子中,實(shí)現(xiàn)了簡(jiǎn)單的繪圖功能,按住鼠標(biāo)左鍵在畫板上進(jìn)行繪制,釋放鼠標(biāo)左鍵結(jié)束繪圖

第一組代碼:初始化代碼

        #實(shí)例化QPixmap類

        self.pix = QPixmap()

        #起點(diǎn),終點(diǎn)

        self.lastPoint = QPoint()

        self.endPoint = QPoint()

        #初始化

        self.initUi()

第二組代碼:重構(gòu)paintEvent()函數(shù)

        def paintEvent(self, event):

        pp = QPainter(self.pix)

        # 根據(jù)鼠標(biāo)指針前后兩個(gè)位置繪制直線

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

        # 讓前一個(gè)坐標(biāo)值等于后一個(gè)坐標(biāo)值,

        # 這樣就能實(shí)現(xiàn)畫出連續(xù)的線

        self.lastPoint = self.endPoint

        painter = QPainter(self)

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

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

第三組代碼:重構(gòu)mousePressEvent()函數(shù),使用兩個(gè)點(diǎn)來繪制線條,這兩個(gè)點(diǎn)從下面的鼠標(biāo)事件中獲取

 def mousePressEvent(self, event):

        # 鼠標(biāo)左鍵按下

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

            self.lastPoint = event.pos()

            self.endPoint = self.lastPoint

第四組代碼:重構(gòu)mouseMoveEvent()函數(shù),當(dāng)鼠標(biāo)左鍵把按下時(shí)獲得開始點(diǎn),每次繪制,都讓結(jié)束點(diǎn)和開始點(diǎn)重合,這樣確保這兩個(gè)點(diǎn)的值都是預(yù)期值

    def mouseMoveEvent(self, event):

        # 鼠標(biāo)左鍵按下的同時(shí)移動(dòng)鼠標(biāo)

        if event.buttons() and Qt.LeftButton:

            self.endPoint = event.pos()

            # 進(jìn)行重新繪制

            self.update()

第五組代碼:重構(gòu)mouseReleaseEvent()函數(shù),當(dāng)鼠標(biāo)指針移動(dòng)時(shí)獲得結(jié)束點(diǎn),并更新繪制,注意,這里的button()函數(shù)可以獲取在鼠標(biāo)指針移動(dòng)過程中按下的所有按鍵,然后用Qt.LeftButton來判斷是否按下了左鍵,在mouseMoveEvent()中必須使用該函數(shù)來判斷按下的鼠標(biāo)按鍵,最后調(diào)用update()函數(shù),會(huì)執(zhí)行paintEvent()函數(shù)進(jìn)行重新繪制

    def mouseReleaseEvent(self, event):

        # 鼠標(biāo)左鍵釋放

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

            self.endPoint = event.pos()

            # 進(jìn)行重新繪制

            self.update()

當(dāng)釋放鼠標(biāo)時(shí),也會(huì)進(jìn)行繪制,現(xiàn)在運(yùn)行程序,按下鼠標(biāo)左鍵在白色畫布上進(jìn)行繪制,實(shí)現(xiàn)了簡(jiǎn)單的涂鴉板功能

本文介紹了PyQt5利用QPixmap,QImage,QPicture,QBitmap實(shí)現(xiàn)簡(jiǎn)單畫板的實(shí)例,更多關(guān)于PyQt5圖形圖像知識(shí)請(qǐng)查看下面的相關(guān)鏈接

標(biāo)簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲久本草在线中文字幕| 日本一区免费视频| 精品少妇一区二区三区| 毛片av中文字幕一区二区| 国产日韩欧美二区| 国产欧美一区二区精品性| 成人黄色网址在线观看| 在线91免费看| 免费看欧美女人艹b| 久久中文字幕一区二区三区| 综合色中文字幕| 欧美国产三区| 欧美xxxx在线观看| 国产成人av一区二区三区在线 | 亚洲成人av资源| 亚洲国产1区| 1024成人网| 亚洲国产高清视频| 亚洲欧美在线观看| 红桃视频亚洲| 国产精品成人网| 狠狠色噜噜狠狠色综合久| 久久精品男人的天堂| 成人一区二区三区在线观看 | 欧美夫妻性生活| 精油按摩中文字幕久久| 在线影院国内精品| 免播放器亚洲一区| 欧美亚洲另类激情小说| 激情六月婷婷久久| 欧美高清视频不卡网| 国内精品伊人久久久久av影院| 欧美日韩一级黄| 精品夜夜嗨av一区二区三区| 欧美精品自拍偷拍动漫精品| 国产一区二区三区最好精华液| 欧美人妇做爰xxxⅹ性高电影| 国产在线国偷精品产拍免费yy| 欧美夫妻性生活| 国产成人日日夜夜| 欧美mv日韩mv| 99天天综合性| 国产精品一区专区| 欧美精品久久久久久久多人混战| 国产在线看一区| 欧美变态口味重另类| 91香蕉视频黄| 中文字幕不卡在线| 91久久精品www人人做人人爽| 亚洲美女电影在线| 久久久久se| 久久av资源网| 日韩一区二区三区四区五区六区| 成人av第一页| 中文字幕亚洲区| 国产欧美一区二区三区国产幕精品| 天堂精品中文字幕在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久国产精品99久久久久久老狼| 91精品国产丝袜白色高跟鞋| 99riav久久精品riav| 日本一区二区免费在线| 中文国产一区| 日韩av网站在线观看| 制服丝袜av成人在线看| av福利精品导航| 亚洲三级免费观看| 日本韩国欧美一区二区三区| 国产成人精品一区二区三区网站观看| 国产偷国产偷精品高清尤物| 日韩一级精品| 日韩午夜在线影院| 欧美日本国产精品| 一个色综合av| 欧美日韩国产成人在线91| 95精品视频在线| 亚洲一区日韩精品中文字幕| 欧美丝袜丝nylons| 99精品久久免费看蜜臀剧情介绍| 国产精品国产成人国产三级| 久久综合给合久久狠狠色| 国产传媒久久文化传媒| 久久一区二区视频| 中文久久精品| 韩国三级电影一区二区| 中文在线一区二区 | 久久久精品动漫| 国产成人精品www牛牛影视| 亚洲视频小说图片| 欧美高清你懂得| 亚洲人成毛片在线播放女女| 久久精品国产77777蜜臀| 欧美精品一区二区三区蜜桃| 99精品国产99久久久久久福利| 欧美在线视频你懂得| 欧美日韩国产bt| 国产精品国产a| 日韩高清一级片| 综合分类小说区另类春色亚洲小说欧美| 欧美探花视频资源| 正在播放一区二区| 国产色爱av资源综合区| 欧美va亚洲va在线观看蝴蝶网| 久热这里只精品99re8久| 欧美激情91| 欧美日韩在线观看一区二区| 午夜亚洲性色福利视频| 色婷婷激情一区二区三区| 亚洲国产综合视频在线观看| 制服丝袜在线91| 亚洲精品男同| 成人午夜av电影| 亚洲一区二区精品视频| 2020国产成人综合网| 久久在线91| 国产精品av久久久久久麻豆网| 精品一区二区在线看| 日本一区二区三区电影| 欧美日韩三级一区二区| 黑丝一区二区三区| 国产麻豆成人传媒免费观看| 亚洲欧洲日产国码二区| 欧美精品在线一区二区三区| 亚洲一卡久久| 日韩欧美一区二区久久婷婷| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲综合欧美日韩| 成人少妇影院yyyy| 亚洲成人在线观看视频| 国产日韩精品一区二区三区| 欧美日韩国产成人在线免费| 亚洲一区二区免费看| 99re6这里只有精品视频在线观看| 裸体健美xxxx欧美裸体表演| 一区二区三区在线免费视频| 久久综合九色综合97婷婷| 在线观看欧美日本| 国产亚洲福利| 国产精品啊啊啊| 白白色亚洲国产精品| 国产一区二区导航在线播放| 亚洲成人av福利| 国产三级三级三级精品8ⅰ区| 欧美巨大另类极品videosbest | 久久一区激情| 亚洲高清在线| 欧美成人69av| 成人黄色软件下载| 美女网站色91| 亚洲国产另类精品专区| 日韩一区欧美小说| 久久久久亚洲蜜桃| 欧美精品tushy高清| 91久久人澡人人添人人爽欧美 | 一区二区三区精品视频在线观看| 欧美暴力喷水在线| av亚洲精华国产精华| 国产精华液一区二区三区| 日本在线不卡视频一二三区| 亚洲香肠在线观看| 亚洲天堂av一区| 欧美国产日韩在线观看| www久久精品| 欧美哺乳videos| 日韩片之四级片| 欧美一区二区三区在线看| 欧美日韩国产高清一区| 在线看日韩精品电影| 免费h精品视频在线播放| 中文在线一区| 一本色道久久综合亚洲精品不卡| 1024亚洲| 亚洲激情影院| 99精品免费视频| 一区二区福利| 国产精品久久久免费| 亚洲综合首页| 久久精品盗摄| 色婷婷精品久久二区二区蜜臀av| 久久激情婷婷| 欧洲精品视频在线观看| 欧美伊人久久久久久久久影院| 91成人国产精品| 欧美日韩一区视频| 欧美乱妇15p| 91精品国产欧美一区二区成人| 91精品国产91久久久久久一区二区| 欧美日本韩国一区| 欧美一区二区视频在线观看2020| 3d成人h动漫网站入口| 欧美一级理论性理论a| 日韩欧美自拍偷拍| 精品国产91乱码一区二区三区 | 国产精品天天摸av网| 中文字幕亚洲电影| 1024成人网色www| 亚洲黄色尤物视频| 亚洲一区二区精品视频| 日本欧美在线观看| 蜜臀av亚洲一区中文字幕|