记录一下windowFlags各种标志位的样式和用法,
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();

}

运行如下:

技术
©2019-2020 Toolsou All rights reserved,
JAVA基础(Math类)关于微信支付body(商品描述)遇到的问题使用正交表法设计测试用例 Unity3D Input按键系统访客手机抓取方法hive压缩&&hdfs合并小文件改主意!特斯拉开始向欧洲市场交付中国造Model 3 Chrome OS,对程序员和Windows意味着什么?,互联网营销用C语言做很简单的飞机游戏蚂蚁集团香港IPO获得中国证监会批准