bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

PyQt5——窗口繪圖類控件-創新互聯

  窗口繪圖類控件

成都創新互聯公司專注于常州企業網站建設,成都響應式網站建設公司,商城開發。常州網站建設公司,為常州等地區提供建站服務。全流程定制網站設計,專業設計,全程項目跟蹤,成都創新互聯公司專業和態度為您提供的服務

  在PyQt5中,一般可以通過QPainter、QPen和QBrush這三個類來實現繪圖的功能。

  QPainter

  QPainter類在QWidget上執行繪圖操作,它是一個繪制工具,為大部分圖形界面提供了高度優化的函數,是QPainter類可以繪制從簡單的直線到復雜的餅圖。

  繪制操作在QWidget.painEvent()中完成,繪制方法必須放在QtGui.QPainter對象的begin()和end()之間。QPainter類在控件或其他繪圖設備上執行較低級別的圖形繪制功能。

  方法

  方法  描述

  begin()  開始在目標設備上繪制

  drawArc()  在起始角度和最終角度之間畫弧

  drawEllipse()  在一個矩形內畫一個橢圓

  drawLine(int x1,int y1,int x2,int y2)  繪制一條指定了端點坐標的線。

  drawPixmap()  從圖像文件中提取Pixmap并將其顯示在指定的位置

  drawPolygon()  使用坐標數組繪制多邊形

  drawReact()  給定寬度w和高度h從左上角(x,y)繪制一個矩形

  drawText()  顯示給定坐標處的文字

  fillRect()  使用QColor參數填充矩形

  setBrush()  設置畫筆風格

  setPen()  設置用于繪制的筆的顏色、大小和樣式

  還可以設置畫筆風格(PenStyle),這是一個枚舉類,可以由QPainter類繪制。

  枚舉類型  描述

  Qt.NoPen  沒有線,比如QPainter.drawRect()填充,但沒有繪制任何邊界線

  Qt.SolidLine  一個簡單的線

  Qt.DashLine  由一些像素分隔的短線

  Qt.DotLine  由一些像素分割點

  Qt.DashDotLine  輪流交替的點和短線

  Qt.DashDotDotLine  一個短線、兩個點

  Qt.MPenStyle  畫筆風格的掩碼

  # -*- coding: utf-8 -*-

  import sys

  from PyQt5.QtWidgets import QApplication, QWidget

  from PyQt5.QtGui import QPainter, QColor, QFont

  from PyQt5.QtCore import Qt

  class Drawing(QWidget):

  def __init__(self, parent = None):

  super(Drawing, self).__init__(parent)

  self.setWindowTitle("在窗口中繪制文字")

  self.resize(300,200)

  self.text = '歡迎學習 PyQt5'

  def paintEvent(self, event):

  painter = QPainter(self)

  painter.begin(self)

  # 自定義繪制方法

  self.drawText(event, painter)

  painter.end()

  def drawText(self, event, qp):

  qp.setPen(QColor(168, 34, 3))

  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_())

  # -*- coding: utf-8 -*-

  import sys, math

  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.resize(300,200)

  self.setWindowTitle("在窗口中畫點")

  def paintEvent(self, event):

  qp = QPainter(self)

  qp.begin(self)

  self.drawPoints(qp)

  qp.end()

  def drawPoints(self,qp):

  qp.setPen(Qt.red)

  size = self.size()

  for i in range(1000):

  x = 100 * (-1+2.0 * i /1000) + size.width()/2.0

  y = -50 * math.sin((x-size.width()/2.0)*math.pi /50)+size.height()/2.0

  qp.drawPoint(x ,y)

  if __name__ == '__main__':

  app = QApplication(sys.argv)

  demo = Drawing()

  demo.show()

  sys.exit(app.exec_())

  QPen

  QPen是一個基本的圖形對象,用于繪制直線、曲線或者輪廓畫出矩形、橢圓形、多邊形以及其他形狀。

  # -*- coding: utf-8 -*-

  import sys

  from PyQt5.QtWidgets import *

  from PyQt5.QtGui import *

  from PyQt5.QtCore import *

  class Drawing(QWidget):

  def __init__(self):

  super().__init__()

  self.initUI()

  def initUI(self):

  self.setGeometry(300,300,280,270)

  self.setWindowTitle("鋼筆樣式例子")

  def paintEvent(self, QPaintEvent):

  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_())

  使用Qt.CustomDashLine創建線條樣式,然后調用setDashPattern()方法使用數字列表定義樣式,數字列表的個數必須是偶數,在本例中數字列表[1,4,5,4]它的個數是4,奇數位代表一段橫線,偶數為代表兩端橫線之間的空余距離。

  QBrush

  QBrush是一個基本的圖形對象,用于填充如矩形、橢圓形或多邊形等形狀。QBrush有三種類型:預定義、過渡和紋理圖案。 無錫看婦科的醫院 http://www.ytsgfk120.com/

  # -*- coding: utf-8 -*-

  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, QPaintEvent):

  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_())

  QPixmap

  QPixmap類用于繪圖設備的圖像顯示,可以作為一個QPaintDevice對象,也可以加載到一個控件中,通常是標簽或者按鈕,用于在標簽或按鈕上顯示圖像。

  QPixmap可以讀取的圖像文件類型有BMP、GIF、JPG、JPEG、PNG、PBM、PGM、PPM、XBM、XPM等。

  常用的方法

  方法  描述

  copy()  從QRect對象復制到QPixmap對象

  fromImage()  將QImage對象轉換為QPixmap對象

  gradWidget()  從給定的窗口小控件創建一個像素圖

  load()  加載圖像文件作為QPixmap對象

  save()  將QPixmap對象保存為文件

  toImage()  將QPixmap對象轉換為QImage對象

  # -*- coding: utf-8 -*-

  import sys

  from PyQt5.QtCore import *

  from PyQt5.QtGui import *

  from PyQt5.QtWidgets import *

  if __name__ == '__main__':

  app = QApplication(sys.argv)

  win = QWidget()

  labl = QLabel()

  labl.setPixmap(QPixmap("./images/python.jpg"))

  vbox = QVBoxLayout()

  vbox.addWidget(labl)

  win.setLayout(vbox)

  win.setWindowTitle("QPixmap例子")

  win.show()

  sys.exit(app.exec_())

網頁名稱:PyQt5——窗口繪圖類控件-創新互聯
網頁地址:http://vcdvsql.cn/article44/jiphe.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣網站改版商城網站網站設計公司網站排名企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設