QT5 QGraphicsView背景如何设置透明
时间: 2024-09-21 10:00:41 浏览: 49
在QT5中,QGraphicsView通常用于显示图形场景,如果想要设置其背景透明,你可以通过创建一个无边框的窗口并且将QGraphicsView的背景色设置为半透明或者完全透明。以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QPainter>
// 创建一个无边框的窗口
QApplication app(argc, argv);
QWidget *window = new QWidget();
window->setAttribute(Qt::WA_TranslucentBackground); // 设置窗口背景透明
// 创建QGraphicsScene
QGraphicsScene scene;
// 创建QGraphicsView并设置背景
QGraphicsView *view = new QGraphicsView(window);
view->setScene(&scene);
view->setBackgroundBrush(QColor(0, 0, 0, 0)); // 设置背景颜色为全透明,其中第四个参数代表Alpha通道,0表示完全透明
// 如果需要渐变透明效果,可以使用QWindow系统的样式
// QGraphicsView* view = new QGraphicsView(window);
// view->setAttribute(Qt::WPaintOnScreen); // 开启硬件加速
// QPainterPath path;
// path.addRect(view->viewport()->rect());
// view->setGraphicsEffect(new QGraphicsDropShadowEffect(path, QColor("#000000"), 4, 0, 8, 8, Qt::ShadowSpreadSoft));
// view->setBackgroundBrush(Qt::transparent);
// 显示窗口
window->show();
app.exec(); // 运行应用程序
```
阅读全文