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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap

發(fā)布時間:2024/9/30 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、QPainter

常用方法

方法描述
begin()開始在目標設(shè)備上繪制
drawArc()在起始角度和最終角度之間畫弧
drawEliipse()在一個矩形內(nèi)畫一個橢圓
drawLine(int x1,int y1,int x2,int y2)繪制一條指定了端點坐標的直線,并且指定當前畫筆位置為(x2,y2)
drawPixmap()從圖像文件中提取 Pixmap 并將其顯示在指定位置
drawPolygon()使用坐標數(shù)組繪制多邊形
drawRect(int x,int y,int w,int h)以給定的寬度和高度從左上角坐標(x,y)開始繪制一個矩形
drawText()顯示給定坐標處的文字
fillRext()使用 QColor 參數(shù)填充矩形
setBrush()設(shè)置畫筆風格
setPen()設(shè)置用于繪制的筆的顏色、大小和樣式

setpen可選參數(shù)

參數(shù)描述
Qt.NoPen沒有線
Qt.SolidLine一條簡單的線
Qt.DashLine由一些像素分隔的短線
Qt.DotLine由一些像素分隔得點
Qt.DashDotLine輪流交替的點和短線
Qt.DashDotDotLine一條短線、兩個點
Qt.MPenStyle畫筆風格的掩碼
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: yudengwu # @Date : 2020/8/20import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import *class Drawing(QWidget):def __init__(self, parent=None):super(Drawing, self).__init__(parent)self.setWindowTitle("在窗口中繪制文字")self.setWindowIcon(QIcon("head.png"))self.resize(300, 200)self.text = "你好呀,總裁余"def paintEvent(self, event):painter = QPainter()painter.begin(self)# 自定義繪制方法self.draw_text(event, painter)painter.end()def draw_text(self, event, qp):# 設(shè)置畫筆顏色qp.setPen(QColor(168, 34, 3))# 設(shè)置字體qp.setFont(QFont('SimSun', 20))# 繪制文字qp.drawText(event.rect(), Qt.AlignCenter, self.text) if __name__ == "__main__":app = QApplication(sys.argv)demo = Drawing()demo.show()sys.exit(app.exec_())

解釋:
首先定義文字
self.text = “你好呀,總裁余”
定義繪制事件
def paintEvent(self, event):
自定義繪制方法
def draw_text(self, event, qp):

繪制點線

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: yudengwu # @Date : 2020/8/20import sys, math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qtclass Drawing(QWidget):def __init__(self, parent=None):super(Drawing, self).__init__(parent)self.resize(300, 200)self.setWindowTitle("在窗口中畫點")self.setWindowIcon(QIcon("limi.jpg"))def paintEvent(self, event):# 初始化繪圖工具qp = QPainter()qp.begin(self)# 自定義畫點方法self.drawPoints(qp)qp.end()def drawPoints(self, qp):qp.setPen(Qt.red)size = self.size()#判斷當前窗口大小for i in range(1000):# 繪制正弦圖形,周期 [-1000,1000]x = 100 * (- 1 + 2.0 * i / 1000) + size.width() / 2.0y = -50 * math.sin((x - size.width() / 2.0) * math.pi / 50) + size.height() / 2.0qp.drawPoint(x, y)if __name__ == "__main__":app = QApplication(sys.argv)win = Drawing()win.show()sys.exit(app.exec_())

2、QPen

QPen(鋼筆)是基本圖形對象,用于繪制直線、曲線或者給輪廓畫出矩形、橢圓形、多邊形以及其他形狀等

import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qt class Drawing(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self): self.setGeometry(300, 300, 280, 270)self.setWindowTitle('鋼筆樣式例子') def paintEvent(self, e): qp = QPainter()qp.begin(self)self.drawLines(qp)qp.end()def drawLines(self, qp):pen = QPen(Qt.black, 2, Qt.SolidLine)qp.setPen(pen)qp.drawLine(20, 40, 250, 40)pen.setStyle(Qt.DashLine)qp.setPen(pen)qp.drawLine(20, 80, 250, 80)pen.setStyle(Qt.DashDotLine)qp.setPen(pen)qp.drawLine(20, 120, 250, 120)pen.setStyle(Qt.DotLine)qp.setPen(pen)qp.drawLine(20, 160, 250, 160)pen.setStyle(Qt.DashDotDotLine)qp.setPen(pen)qp.drawLine(20, 200, 250, 200)pen.setStyle(Qt.CustomDashLine)pen.setDashPattern([1, 4, 5, 4])qp.setPen(pen)qp.drawLine(20, 240, 250, 240)if __name__ == '__main__':app = QApplication(sys.argv)demo = Drawing()demo.show()sys.exit(app.exec_())

3、QBrush

QBrush(畫刷),用于填充如矩形、橢圓形或多邊形等形狀。
QBrush 有三種類型:預(yù)定義、過渡和紋理圖案。

# -*- coding: utf-8 -*-"""【簡介】繪圖中QBrush 的例子 ,繪制九個不同樣式的矩形。"""import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qt class Drawing(QWidget): def __init__(self):super().__init__() self.initUI()def initUI(self): self.setGeometry(300, 300, 365, 280)self.setWindowTitle('畫刷例子') self.show()def paintEvent(self, e): qp = QPainter()qp.begin(self)self.drawLines(qp)qp.end()def drawLines(self, qp): brush = QBrush(Qt.SolidPattern)qp.setBrush(brush)qp.drawRect(10, 15, 90, 60)brush = QBrush(Qt.Dense1Pattern)qp.setBrush(brush)qp.drawRect(130, 15, 90, 60)brush = QBrush(Qt.Dense2Pattern)qp.setBrush(brush)qp.drawRect(250, 15, 90, 60)brush = QBrush(Qt.Dense3Pattern)qp.setBrush(brush)qp.drawRect(10, 105, 90, 60)brush = QBrush(Qt.DiagCrossPattern)qp.setBrush(brush)qp.drawRect(10, 105, 90, 60)brush = QBrush(Qt.Dense5Pattern)qp.setBrush(brush)qp.drawRect(130, 105, 90, 60)brush = QBrush(Qt.Dense6Pattern)qp.setBrush(brush)qp.drawRect(250, 105, 90, 60)brush = QBrush(Qt.HorPattern)qp.setBrush(brush)qp.drawRect(10, 195, 90, 60)brush = QBrush(Qt.VerPattern)qp.setBrush(brush)qp.drawRect(130, 195, 90, 60)brush = QBrush(Qt.BDiagPattern)qp.setBrush(brush)qp.drawRect(250, 195, 90, 60)if __name__ == '__main__':app = QApplication(sys.argv)demo = Drawing()demo.show()sys.exit(app.exec_())

4、QPixmap

QPixmap 類用于繪圖設(shè)備的圖像顯示,可作為一個 QPaintDevice 對象,也可以加載到一個控件中。
QPixmap 可以讀取的圖像文件類型有:BMP、GIF、JPG、JPEG、PNG、PBM、PGM、PPM、XBM、XPM 等。
QPixmap 類的常用方法如下:

方法描述
copy()從 QRect 對象復(fù)制到 QPixmap 對象
fromIamge()將 QImage 對象轉(zhuǎn)換為 QPixmap 對象
grabWidget()從給定的窗口小控件創(chuàng)建一個像素圖
grabWindow()在窗口中創(chuàng)建數(shù)據(jù)的像素圖
load()加載圖像文件作為 QPixmap 對象
save()將 QPixmap 對象保存為文件
toImage()將 QPixmap 對象轉(zhuǎn)換為 QImage 對象
# -*- coding: utf-8 -*-'''【簡介】PyQt5中 QPixmap 例子'''import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *if __name__ == '__main__':app = QApplication(sys.argv)win = QWidget()lab1 = QLabel()lab1.setPixmap(QPixmap("D:\機器學(xué)習(xí)\學(xué)習(xí)草稿\duoren.jpg"))vbox=QVBoxLayout()vbox.addWidget(lab1)win.setLayout(vbox)win.setWindowTitle("QPixmap 例子")win.show()sys.exit(app.exec_())

這篇博文內(nèi)容來源于書籍《pyqt5快速開發(fā)與實戰(zhàn)》
我只是記錄下有用的信息,方便以后復(fù)習(xí)查找。
不然學(xué)的東西又忘啦。

電氣專業(yè)的計算機萌新,寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結(jié)

以上是生活随笔為你收集整理的pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美一区二区人人喊爽 | 日韩日b | 全部免费毛片在线播放一个 | 欧美videos另类精品 | 国产尤物精品 | 精品自拍视频 | 毛片视频网址 | 天天躁日日躁狠狠躁av麻豆男男 | av午夜激情 | 欧美午夜精品久久久久久孕妇 | 久久国产精品久久久久久电车 | 男人天堂手机在线观看 | 久久成年人| 人妖性生活视频 | 亚洲男人的天堂网站 | 欧美三级电影在线观看 | 好吊日av | 天堂av在线电影 | av片毛片| 911亚洲精选| 亚洲精品第一 | 麻豆三级 | 伊人久久久久久久久 | 99久久久无码国产精品免费蜜柚 | 人妻无码中文字幕 | 天天色综合久久 | 日本人毛片 | √天堂中文官网8在线 | 亚洲成人少妇 | 天天爽天天爽夜夜爽毛片 | 337p粉嫩大胆色噜噜狠狠图片 | 欧美日韩精品一区二区三区蜜桃 | 日本裸体xx少妇18在线 | 美女张开腿让男人操 | 国产精品久久麻豆 | 欧美婷婷精品激情 | 久久伊人中文字幕 | 性欢交69精品久久久 | 超碰公开免费 | 欧美a在线视频 | 亚洲二三区| 国产99免费视频 | 97精品国产97久久久久久粉红 | 147人体做爰大胆图片成人 | 91青青视频| 国产精品成人久久久久 | 一区二区三区在线视频播放 | 亚洲三级黄色片 | 91看片在线看 | 青青网站 | 亚洲天堂第一页 | 日韩成人午夜电影 | 黄色网战在线观看 | 夜色福利 | 色88久久久久高潮综合影院 | 亲嘴扒胸摸屁股激烈网站 | 悟空影视大全免费高清观看在线 | 国产黄在线观看 | 大尺度舌吻呻吟声 | 91爱 | 奴色虐av一区二区三区 | 一区二区三区韩国 | 黄色在线播放 | 国产精品福利片 | 精品少妇一区二区三区密爱 | 久久国产精品网站 | 中国老太婆性视频 | 91一区在线| yy4138理论片动漫理论片 | 国色综合 | 一本色道久久综合熟妇 | 国产精品美女久久久免费 | 午夜影院在线观看18 | 8090av| 97干干| 大屁股白浆一区二区 | 免费吸乳羞羞网站视频 | caoprom在线| 91精产国品一二三 | 性欧美hd调教 | 亚洲v在线观看 | 国产av一区二区三区最新精品 | 老司机深夜福利网站 | 黄色国产在线观看 | 亚洲免费黄色网址 | 嫩草网站入口 | 在线观看不卡一区 | 日韩精品人妻无码一本 | av网站国产 | 自拍偷拍欧美视频 | 久久久久免费视频 | 免费成人在线观看动漫 | 99久久久成人国产精品 | 神马国产 | 丝袜毛片| 欧美色xxxxx| 亚洲成人影音 | 亚洲免费黄色 | jizz18欧美18|