qt Qwidget窗口去标题栏
时间: 2024-11-16 18:27:26 浏览: 34
在Qt中,如果你想要创建一个没有标题栏的`QWidget`窗口,你可以使用`QFrame`或者其他无装饰边框的窗口组件,然后设置窗口样式为无边框。以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QWidget>
#include <QFrame>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个无标题栏的窗口
QWidget window;
window.setAttribute(Qt::WA_TranslucentBackground, true); // 设置透明背景
// 使用QFrame替换QWidget,因为QFrame默认没有边框和标题栏
QFrame frame;
frame.setFrameShape(QFrame::NoFrame); // 设置无边框
frame.setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); // 自适应大小
// 将无边框的frame添加到窗口布局中
QVBoxLayout *layout = new QVBoxLayout(&window);
layout->addWidget(&frame);
// 设置窗口大小并显示
window.resize(400, 300);
window.show();
return app.exec();
}
```
在这个例子中,我们首先创建了一个`QWidget`并将它的`wa_TranslucentBackground`属性设为`true`,使得窗口背景变为半透明。然后,我们用`QFrame`替代了`QWidget`,并通过设置`setFrameShape`为`QFrame::NoFrame`来去掉边框。最后,我们将这个无边框的`QFrame`添加到了窗口的布局中。
阅读全文