PyQt5 繪圖 API



PyQt 中所有QWidget類都是從QPaintDevice類派生的。QPaintDevice是對二維空間的抽象,可以使用QPainter在其上繪製。繪圖裝置的尺寸以畫素為單位,從左上角開始測量。

QPainter類在控制元件和其他可繪製裝置(如印表機)上執行低階繪製。通常,它用於控制元件的繪製事件。每當控制元件的外觀更新時,就會發生QPaintEvent

透過呼叫begin()方法啟用繪圖器,而end()方法則停用它。在這兩者之間,透過下表中列出的適當方法繪製所需的圖案。

序號 方法及描述
1

begin()

開始在目標裝置上繪製

2

drawArc()

繪製起始角和結束角之間的弧線

3

drawEllipse()

在矩形內繪製橢圓

4

drawLine()

繪製一條線,指定端點座標

5

drawPixmap()

從影像檔案提取 pixmap 並將其顯示在指定位置

6

drwaPolygon()

使用座標陣列繪製多邊形

7

drawRect()

繪製一個從左上角座標開始,具有給定寬度和高度的矩形

8

drawText()

在給定座標顯示文字

9

fillRect()

使用QColor引數填充矩形

10

setBrush()

設定繪製的畫刷樣式

11

setPen()

設定繪製時使用的筆的顏色、大小和樣式

示例

在下面的程式碼中,使用了PyQt各種繪圖方法。

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__()
      self.initUI()

   def initUI(self):
      self.text = "hello world"
      self.setGeometry(100,100, 400,300)
      self.setWindowTitle('Draw Demo')
      self.show()

   def paintEvent(self, event):
      qp = QPainter()
      qp.begin(self)
      qp.setPen(QColor(Qt.red))
      qp.setFont(QFont('Arial', 20))
      qp.drawText(10,50, "hello Python")
      qp.setPen(QColor(Qt.blue))
      qp.drawLine(10,100,100,100)
      qp.drawRect(10,150,150,100)
      qp.setPen(QColor(Qt.yellow))
      qp.drawEllipse(100,50,100,50)
      qp.drawPixmap(220,10,QPixmap("pythonlogo.png"))
      qp.fillRect(20,175,130,70,QBrush(Qt.SolidPattern))
      qp.end()

def main():
   app = QApplication(sys.argv)
   ex = Example()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

以上程式碼產生以下輸出:

Database Handling Outputs
廣告