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();
}