Qt 无框/无边框窗口(如 Visual Studio UI)

问题描述 投票:0回答:2

我正在尝试在 Qt 5.2 C++ 中实现无框窗口。

这个答案对我来说是完美的,但在 Qt5 中不再适用 - Windows 上 Qt 中的无边框窗口,支持本机功能:aero snap、DWM 调整大小和最小化

我所做的是创建一个基本的 MainWindow 小部件,通过样式表设置属性,除了一些事情之外,它几乎是我想要的。

此代码:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent, Qt::CustomizeWindowHint ), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //this->setFixedSize(300, 450);
    this->statusBar()->setSizeGripEnabled(true);
    this->setStyleSheet("background-color: white; border: 1px solid red;");
    this->setWindowFlags(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground, true);
}

会给我 - 几乎 - 我想要的,主要问题是 -

  1. 顶部有一些奇怪的栏,看起来像这样。当我右键单击该栏,然后左键单击该复选框时,它消失了。我如何默认禁用此功能? (请原谅第 3 方链接,StackOverflow 不允许新人在这里托管图片)

http://i57.tinypic.com/2iapqnn.png

  1. 如图所示,只有侧边框是 1 px,顶部/底部边框更像是 4 px。底部还有一个奇怪的栏(类似于顶部的栏,在它被删除之前),我想删除它。如何禁用底部栏,并确保所有边框的宽度恰好为 1 像素?

http://i62.tinypic.com/28qsnrk.png

我想要的只是一个空的白色、可调整大小的窗口,带有 1 px 红色边框。

非常感谢您的帮助。祝你有美好的一天。

c++ qt user-interface
2个回答
0
投票

顶部有一些奇怪的栏,看起来像这样。当我右键单击该栏,然后左键单击该复选框时,它消失了。 我如何默认禁用此功能? (请原谅第 3 方链接, StackOverflow 不允许新人在这里托管图片)

我是工具栏。删除它:在 Qt Design 视图 -> 对象列表 -> 右键单击 mainToolBar,然后删除它!

如图所示,只有侧边框是 1 px,顶部/底部边框更像是 4 px。底部还有一个奇怪的栏(类似于顶部的栏,在它被删除之前),我想删除它。如何禁用底部栏,并确保所有边框的宽度恰好为 1 像素?

这是你的状态栏,执行与工具栏相同的操作。


0
投票

我已经制作了关于您想要制作的示例模板项目!
看看吧:)
https://github.com/tongmon/qt-frameless-windows

© www.soinside.com 2019 - 2024. All rights reserved.