首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Qt學習之路(25):QPainter 畫筆與畫刷深度解析

     編輯:關於C++

Qt 繪圖系統三大參數:畫筆、畫刷、字體。本文詳細說明 QPen 與 QBrush。

畫筆 QPen:描繪線條與輪廓

支援三類樣式設定:

  • Cap Style (筆帽):線段端點形狀,setCapStyle()
  • Join Style (連接點):線段轉角形狀,setJoinStyle()
  • Line Style (線型):實線、虛線等,setStyle()

畫刷 QBrush:填充封閉圖形

兩大參數:顏色與樣式。亦支援紋理與漸層填充。

程式碼實戰解析

void PaintedWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.drawLine(80, 100, 650, 500);  // 預設筆刷:黑色 1px 實線
    
    painter.setPen(Qt::red);
    painter.drawRect(10, 10, 100, 400);   // 紅色邊框
    
    painter.setPen(QPen(Qt::green, 5));
    painter.setBrush(Qt::blue);
    painter.drawEllipse(50, 150, 400, 200);  // 綠色 5px 邊框 + 藍色填充
}

繪製順序決定疊加關係:後繪製者覆蓋先繪製者。橢圓最後繪製故在最上層。

狀態機特性

QPainter 同 OpenGL、Java2D 皆為狀態機:設定屬性持續有效,直到重新設定。若橢圓後再畫圖形,除非呼叫 setPen()/setBrush() 更新,否則沿用綠框藍填樣式。這是繪圖系統通用設計模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved