繁体   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