Qt按钮打开一个新满屏窗口透明度
时间: 2024-12-23 13:24:21 浏览: 4
在Qt中,如果你想通过按钮点击事件打开一个新的全屏透明窗口,你可以使用`QWindow`和`QGraphicsOpacityEffect`类。首先,创建一个自定义窗口类,例如`TransparentFullScreenWindow`,并设置其背景透明:
```cpp
class TransparentFullScreenWindow : public QMainWindow {
public:
explicit TransparentFullScreenWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
setAttribute(Qt::WA_TranslucentBackground);
setWindowState(Qt::WindowFullScreen);
QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect(this);
setGraphicsEffect(opacityEffect);
opacityEffect->setOpacity(0.5); // 设置透明度,默认为0.5,范围从0(完全透明)到1(完全不透明)
QPushButton *button = new QPushButton("Click me", this);
connect(button, &QPushButton::clicked, this, [this] {
hide(); // 当按钮被点击时,原窗口隐藏
showFullScreen(); // 显示全屏透明窗口
});
}
};
```
在这个例子中,当用户点击按钮时,原始窗口会隐藏,然后显示一个半透明的全屏窗口。
阅读全文