Qt 去除标题栏不同方法不同平台差异探究

Qt 版本:Qt 6.5.0

Windows 11

当窗体为QWidget时

    setWindowFlags(Qt::FramelessWindowHint);// 窗口不能缩放
    
    setWindowFlags(Qt::CustomizeWindowHint);// 窗口支持缩放,且窗体四角为圆角
CustomizeWindowHint FramelessWindowHint
CustomizeWindowHint FramelessWindowHint

当窗体为QMainWindow时,两个标志都能实现窗体缩放,但有所差异

    setWindowFlags(Qt::FramelessWindowHint);// 窗口支持缩放,但窗体四角为直角
    
    setWindowFlags(Qt::CustomizeWindowHint);// 窗口支持缩放,且窗体四角为圆角
CustomizeWindowHint FramelessWindowHint
CustomizeWindowHint FramelessWindowHint

UOS

当窗体为QMainWindow时,设置以下两个标志去除标题栏均可实现窗口大小缩放。

setWindowFlags(Qt::FramelessWindowHint);

setWindowFlags(Qt::CustomizeWindowHint);

原因:QMainWindow下方有QStatusBar控件,将其移除后,两者均不能进行窗口大小缩放,可观察到右下角缩放标志消失。

而窗体为QWidget时,均不能实现窗口大小缩放

setWindowFlags(Qt::FramelessWindowHint);

setWindowFlags(Qt::CustomizeWindowHint);

TODO

Ubuntu、Windows 10

猜你喜欢

转载自blog.csdn.net/no_say_you_know/article/details/130983367