Qt中 setWindowFlags(); 函数的各种标志位学习


Qt之自定义界面(窗体缩放)
// 设置无边框
setWindowFlags(Qt::FramelessWindowHint);
// 背景透明
setAttribute(Qt::WA_TranslucentBackground, true);

setWindowOpacity(0.5); //设置背景透明度 0为完全透明
    
setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //设置窗口置顶
      
代码:
#include "qtwindowflagstest.h"
#include <QtWidgets/QApplication>
#include <QStatusBar>
#include <QObject>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtWindowFlagsTest w;
    w.setGeometry(10, 30, 200, 200);
    w.statusBar()->showMessage(QObject::tr("Normal"));
    w.show();

    //只有一个关闭按钮
    QtWindowFlagsTest w2;
    w2.setGeometry(225, 30, 200, 200);
    w2.setWindowFlags(Qt::WindowCloseButtonHint);
    w2.statusBar()->showMessage("Qt::WindowCloseButtonHint");
    w2.show();

    //像对话框一样,有个问号和关闭按钮
    QtWindowFlagsTest w3;
    w3.setGeometry(440, 30, 200, 200);
    w3.setWindowFlags(Qt::WindowContextHelpButtonHint);
    w3.statusBar()->showMessage("Qt::WindowContextHelpButtonHint");
    w3.show();

    //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有,但是可以从任务管理器里关闭
    QtWindowFlagsTest w4;
    w4.setGeometry(655, 30, 200, 200);
    w4.setWindowFlags(Qt::CustomizeWindowHint);
    w4.statusBar()->showMessage("Qt::CustomizeWindowHint");
    w4.show();

    //窗口只有一个关闭按钮
    QtWindowFlagsTest w5;
    w5.setGeometry(870, 30, 200, 200);
    w5.setWindowFlags(Qt::WindowTitleHint);
    w5.statusBar()->showMessage("Qt::WindowTitleHint");
    w5.show();

    //只有一个关闭按钮
    QtWindowFlagsTest w6;
    w6.setGeometry(1085, 30, 200, 200);
    w6.setWindowFlags(Qt::WindowSystemMenuHint);
    w6.statusBar()->showMessage("Qt::WindowSystemMenuHint");
    w6.show();

    //最小化按钮不可用
    QtWindowFlagsTest w7;
    w7.setGeometry(1300, 30, 200, 200);
    w7.setWindowFlags(Qt::WindowMaximizeButtonHint);
    w7.statusBar()->showMessage("Qt::WindowMaximizeButtonHint");
    w7.show();

    //还原按钮不可用
    QtWindowFlagsTest w8;
    w8.setGeometry(1515, 30, 200, 200);
    w8.setWindowFlags(Qt::WindowMinimizeButtonHint);
    w8.statusBar()->showMessage("Qt::WindowMinimizeButtonHint");
    w8.show();

    //窗口没有按钮但是有标题栏 任务里什么也看不到
    QtWindowFlagsTest w9;
    w9.setGeometry(2, 238, 200, 200);
    w9.setWindowFlags(Qt::SubWindow);
    w9.statusBar()->showMessage("Qt::SubWindow");
    w9.show();

    //没有显示在桌面也没在任务。但是任务管里器里还有
    QtWindowFlagsTest w10;
    w10.setGeometry(217, 238, 200, 200);
    w10.setWindowFlags(Qt::Desktop);
    w10.statusBar()->showMessage("Qt::Desktop");
    w10.show();

    //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可以从任务管理器里关闭
    QtWindowFlagsTest w11;
    w11.setGeometry(432, 238, 200, 200);
    w11.setWindowFlags(Qt::SplashScreen);
    w11.statusBar()->showMessage("Qt::SplashScreen");
    w11.show();

    //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可以从任务管理器里关闭 顶层窗口 一直都是在最上面
    QtWindowFlagsTest w12;
    w12.setGeometry(647, 238, 200, 200);
    w12.setWindowFlags(Qt::ToolTip);
    w12.statusBar()->showMessage("Qt::ToolTip");
    w12.show();

    //有一个小小的关闭按钮,但是好像不能真正的关闭
    QtWindowFlagsTest w13;
    w13.setGeometry(862, 238, 200, 200);
    w13.setWindowFlags(Qt::Tool);
    w13.statusBar()->showMessage("Qt::Tool");
    w13.show();
    return a.exec();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值