在 Qt 上制作一个没有控制框的无边框应用程序

Posted

技术标签:

【中文标题】在 Qt 上制作一个没有控制框的无边框应用程序【英文标题】:make a borderless app without a controlbox on Qt 【发布时间】:2014-06-23 03:50:45 【问题描述】:

是否可以在 Qt 上制作无边框窗口?我知道它可能在 Visual Studio 中您只需更改属性窗口中的值。 Qt 没有 formborderstyle 属性。

还有可能不在任务栏上显示图标

【问题讨论】:

如果您使用旧版本的 Qt(4.8.5 或 5.2) - 请注意下一个问题 - bugreports.qt-project.org/browse/QTBUG-17548 【参考方案1】:

我认为不可能抑制任务栏条目。每个没有父级的***窗口都会得到一个。

当然可以创建一个无框窗口。我曾经将一个普通的 QWidget 用于类似的目的,并添加如下内容:

setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint);

【讨论】:

【参考方案2】:

使用 setWindowFlags() 在您的***小部件上设置窗口标志

Qt::FramelessWindowHint - 在没有窗口框架的情况下绘制

在http://qt-project.org/doc/qt-4.8/qt.html#WindowType-enum和http://qt-project.org/doc/qt-4.8/qwidget.html#windowFlags-prop查看完整文档

至于隐藏任务栏,请查看此堆栈溢出示例Qt Hide Taskbar Item(只需将 windowFlags 设置为包含 Qt::Dialog,您就可以使用

MyWindowWidget(QWidget *parent)
    : QWidget(parent, Qt::Dialog|Qt::FramelessWindowHint)

【讨论】:

以上是关于在 Qt 上制作一个没有控制框的无边框应用程序的主要内容,如果未能解决你的问题,请参考以下文章

带投影的无边框 TForm

android黑色边框如何去掉

Qt商业级无边框窗口实现源码(windowsmsvc)

Flutter 中的无边框选择高亮效果

QT 设置文本框的边框线颜色和粗细

QT 设置文本框的边框线颜色和粗细