
- PyQt5 教程
- PyQt5 - 首頁
- PyQt5 - 簡介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要類
- PyQt5 - 使用 Qt Designer
- PyQt5 - 訊號與槽
- PyQt5 - 佈局管理
- PyQt5 - 基本控制元件
- PyQt5 - QDialog 類
- PyQt5 - QMessageBox
- PyQt5 - 多文件介面
- PyQt5 - 拖放
- PyQt5 - 資料庫處理
- PyQt5 繪圖 API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 類
- PyQt5 有用資源
- PyQt5 - 快速指南
- PyQt5 - 有用資源
- PyQt5 - 討論
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()
以上程式碼產生以下輸出:

廣告