pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap
生活随笔
收集整理的這篇文章主要介紹了
pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、QPainter
常用方法
| begin() | 開始在目標設備上繪制 |
| drawArc() | 在起始角度和最終角度之間畫弧 |
| drawEliipse() | 在一個矩形內畫一個橢圓 |
| drawLine(int x1,int y1,int x2,int y2) | 繪制一條指定了端點坐標的直線,并且指定當前畫筆位置為(x2,y2) |
| drawPixmap() | 從圖像文件中提取 Pixmap 并將其顯示在指定位置 |
| drawPolygon() | 使用坐標數組繪制多邊形 |
| drawRect(int x,int y,int w,int h) | 以給定的寬度和高度從左上角坐標(x,y)開始繪制一個矩形 |
| drawText() | 顯示給定坐標處的文字 |
| fillRext() | 使用 QColor 參數填充矩形 |
| setBrush() | 設置畫筆風格 |
| setPen() | 設置用于繪制的筆的顏色、大小和樣式 |
setpen可選參數
| Qt.NoPen | 沒有線 |
| Qt.SolidLine | 一條簡單的線 |
| Qt.DashLine | 由一些像素分隔的短線 |
| Qt.DotLine | 由一些像素分隔得點 |
| Qt.DashDotLine | 輪流交替的點和短線 |
| Qt.DashDotDotLine | 一條短線、兩個點 |
| Qt.MPenStyle | 畫筆風格的掩碼 |
解釋:
首先定義文字
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 有三種類型:預定義、過渡和紋理圖案。
4、QPixmap
QPixmap 類用于繪圖設備的圖像顯示,可作為一個 QPaintDevice 對象,也可以加載到一個控件中。
QPixmap 可以讀取的圖像文件類型有:BMP、GIF、JPG、JPEG、PNG、PBM、PGM、PPM、XBM、XPM 等。
QPixmap 類的常用方法如下:
| copy() | 從 QRect 對象復制到 QPixmap 對象 |
| fromIamge() | 將 QImage 對象轉換為 QPixmap 對象 |
| grabWidget() | 從給定的窗口小控件創建一個像素圖 |
| grabWindow() | 在窗口中創建數據的像素圖 |
| load() | 加載圖像文件作為 QPixmap 對象 |
| save() | 將 QPixmap 對象保存為文件 |
| toImage() | 將 QPixmap 對象轉換為 QImage 對象 |
這篇博文內容來源于書籍《pyqt5快速開發與實戰》
我只是記錄下有用的信息,方便以后復習查找。
不然學的東西又忘啦。
電氣專業的計算機萌新,寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的pyqt5讲解5:窗口绘图类控件QPainter,QPen,QBrush,QPixmap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 东方期权是什么公司
- 下一篇: 200.00是多少人民币