簡體   English   中英

如何制作半透明顏色的 QGraphicsItem?

[英]How to make a QGraphicsItem of translucent color?

我正在開發一個 QT GUI,它通過各種形狀從圖形視圖中注釋圖片,目前正在開發最簡單的矩形。 我設法在按下按鈕后向圖像添加一個矩形,並使用 setFlag 函數移動它。 我現在需要做的是確保矩形是半透明的,以便用戶可以看到確切注釋的內容。 我的矩形按鈕代碼:

void MainWindow::on_pushButton_11_clicked()  // rectangle shape creator
{
    QBrush redBrush(Qt::red);
    QBrush blueBrush(Qt::blue);
    QPen blackpen(Qt::black);
    blackpen.setWidth(3);
    rectangle = scene->addRect(-100,-100,50,50,blackpen,blueBrush);
    rectangle->setFlag(QGraphicsItem::ItemIsMovable);
}

我研究了 Qt 文檔,發現 QGraphicsItem 庫中的 opacity 函數可能是解決方案,但我找不到實現這一點的方法。 任何幫助或建議都非常感謝。

有幾種解決方案:

  • 使用setOpacity()方法使填充和邊框顏色中的項目變得透明。

     rectangle->setOpacity(.2);
  • 如果要在填充顏色中設置透明度,則必須為 QBrush 設置一個透明的 QColor。

     QColor brush_color(Qt::blue); brush_color.setAlpha(50); QPen blackpen(Qt::black); blackpen.setWidth(3); rectangle = scene->addRect(-100, -100, 50, 50, blackpen, brush_color); rectangle->setFlag(QGraphicsItem::ItemIsMovable);
  • 如果要在邊框處設置透明度,則必須為 QBrush 設置一個透明的 QColor。

     QBrush blueBrush(Qt::blue); QColor black_color(Qt::black); black_color.setAlpha(50); QPen blackpen(black_color); blackpen.setWidth(3); rectangle = scene->addRect(-100, -100, 50, 50, blackpen, blueBrush); rectangle->setFlag(QGraphicsItem::ItemIsMovable);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM