qt c++,让qwidget整个窗口变暗,并且在窗口中间显示“加载中”
时间: 2024-04-11 08:27:26 浏览: 103
您可以使用QGraphicsOpacityEffect来实现窗口的变暗效果,并使用QLabel来显示"加载中"的文本。以下是一个示例的代码:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建主窗口
QWidget mainWindow;
mainWindow.setWindowTitle("Window with Loading");
// 创建半透明效果
QGraphicsOpacityEffect opacityEffect;
opacityEffect.setOpacity(0.5); // 设置透明度为0.5
// 创建加载中文本
QLabel loadingLabel(&mainWindow);
loadingLabel.setText("加载中");
loadingLabel.setAlignment(Qt::AlignCenter); // 文本居中显示
loadingLabel.setStyleSheet("font-size: 24px; color: white; background-color: rgba(0, 0, 0, 0.5);"); // 设置文本样式
loadingLabel.setGeometry(0, 0, 200, 50); // 设置文本位置和大小
// 将透明效果应用于主窗口
mainWindow.setGraphicsEffect(&opacityEffect);
// 显示主窗口
mainWindow.show();
return app.exec();
}
```
在上面的示例中,我们创建了一个名为`mainWindow`的主窗口,并将其标题设置为"Window with Loading"。然后,我们创建了一个`QGraphicsOpacityEffect`对象,并将其透明度设置为0.5,以实现窗口的变暗效果。接下来,我们创建了一个`QLabel`对象,用于显示"加载中"的文本,并将其样式设置为白色文本在半透明黑色背景上居中显示。最后,我们将透明效果应用于主窗口,并显示主窗口。
请注意,您需要将此代码添加到您的Qt项目中,并根据需要进行适当的修改和调整。
阅读全文