- 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()
以上程式碼產生以下輸出:
廣告