1、窗体设置
//个窗体初始运行最大化
setWindowState(Qt::WindowMaximized);
//获取屏幕分别率,并设置窗体固定大小
QScreen *screen = QGuiApplication::primaryScreen();
QRect mm = screen->availableGeometry();
int screen_width = mm.width();
int screen_height = mm.height();
this->setFixedSize(screen_width, screen_height); //设置窗体固定大小
//获取客户去大小,并设置窗体固定大小
int width = this->geometry().width();
int height = this->geometry().height();
this->setFixedSize(width, height); //设置窗体固定大小
//改编窗口部件的大小
//void resize(int w, int h)
//void resize(const QSize &)
//改编窗口部件的位置
//void move(int x, int y)
//void move(const QPoint &)
this->move(-7, 0);
//设置窗口无边框且窗口显示在最顶层
this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
2、对话框属性
主要使用的是WindowsType枚举
enum WindowType {
Widget = 0x00000000,
Window = 0x00000001,
Dialog = 0x00000002 | Window,
Sheet = 0x00000004 | Window,
Drawer = 0x00000006 | Window,
Popup = 0x00000008 | Window,
Tool = 0x0000000a | Window,
ToolTip = 0x0000000c | Window,
SplashScreen = 0x0000000e | Window,
Desktop = 0x00000010 | Window,
SubWindow = 0x00000012,
WindowType_Mask = 0x000000ff,
MSWindowsFixedSizeDialogHint = 0x00000100,
MSWindowsOwnDC = 0x00000200,
X11BypassWindowManagerHint = 0x00000400,
FramelessWindowHint = 0x00000800,
WindowTitleHint = 0x00001000,
WindowSystemMenuHint = 0x00002000,
WindowMinimizeButtonHint = 0x00004000,
WindowMaximizeButtonHint = 0x00008000,
WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint,
WindowContextHelpButtonHint = 0x00010000,
WindowShadeButtonHint = 0x00020000,
WindowStaysOnTopHint = 0x00040000,
// reserved for Qt3Support:
// WMouseNoMask = 0x00080000,
// WDestructiveClose = 0x00100000,
// WStaticContents = 0x00200000,
// WGroupLeader = 0x00400000,
// WShowModal = 0x00800000,
// WNoMousePropagation = 0x01000000,
CustomizeWindowHint = 0x02000000,
WindowStaysOnBottomHint = 0x04000000,
WindowCloseButtonHint = 0x08000000,
MacWindowToolBarButtonHint = 0x10000000,
BypassGraphicsProxyWidget = 0x20000000,
WindowOkButtonHint = 0x00080000,
WindowCancelButtonHint = 0x00100000,
WindowSoftkeysVisibleHint = 0x40000000,
WindowSoftkeysRespondHint = 0x80000000
}
Qt::Widget: QWidget构造函数的默认值,如果新的窗口部件没有父窗口部件,则它是一个独立的窗口,否则就是一个子窗口部件
Qt::Window: 无论是否有父窗口部件,新窗口部件都是一个窗口,通常有一个窗口边框和一个标题栏
Qt::Dialog: 新窗口部件是一个对话框,它是QDialog构造函数的默认值
Qt::Sheet: 新窗口部件是一个Macintosh表单(sheet)
Qt::Drawer: 新窗口部件是一个Macintosh抽屉(drawer)
Qt::Popup: 新窗口部件是一个弹出式顶层窗口
Qt::Tool: 新窗口部件是一个工具(tool)窗口,它通常是一个用于显示工具按钮的小窗口。如果一个工具窗口有父窗口部件,则它将显示在父窗口的部件上面,否则相当于使用了Qt::WindowStaysOnTopHint提示。
Qt::ToolTip: 新窗口部件是一个提示窗口,没有标题栏和窗口边框
Qt::Desktop: 新窗口部件是桌面,它是QDesktopWidget构造函数的默认值
Qt::SplashScreen: 新窗口部件是一个欢迎窗口,它是SplashScreen构造函数的默认值。
Qt::SubWindow: 新窗口部件是一个子窗口,而无论窗口部件是否有父窗口部件。此外,Qt还定义了一些控制窗口外观的窗口提示(这些窗口提示仅对顶层窗口有效)
Qt::MSWindowFiredSizeDialogHint: 为Windows系统上的窗口装饰一个窄的对话框边框,通常这个提示用于固定大小的对话框
Qt::MSWindowOwnDC: 为Windows系统上的窗口添加自身的显示上下文菜单
Qt::X11BypassWindowManagerHint: 完全忽视窗口管理器,它的作用是产生一个根本不被管理的无窗口边框的窗口(此时,用户无法使用键盘进行输入,除非手动调用QWidget::activateWindow()函数)
Qt::FramelessWindowHint: 产生一个无窗口边框的窗口,此时用户无法移动该窗口和改变它的大小
Qt::CustomizeWindowHint: 关闭默认的窗口标题提示
Qt::WindowTitleHint: 为窗口装饰一个标题栏
Qt::WindowSystemMenuHint: 为窗口添加一个窗口系统系统菜单,并尽可能地添加一个关闭按钮
Qt::WindowMinimizeButtonHint: 为窗口添加一个“最小化”按钮
Qt::WindowMaximizeButtonHint: 为窗口添加一个“最大化”按钮
Qt::WindowMinMaxButtonHint: 为窗口添加一个“最小化”按钮 和一个“最大化”按钮
Qt::WindowContextHelpButtonHint: 为窗口添加一个“上下文帮助”按钮
Qt::WindowStaysOnTopHint: 告知窗口系统,该窗口应该停留在所有其他窗口的上面。
Qt::WindowType_Mask: 一个用于提示窗口标识的窗口类型部分的掩码
注:
Qt::FramelessWindowHint: 产生一个无窗口边框的窗口,此时用户无法移动该窗口和改变它的大小
Qt::WindowStaysOnTopHint: 告知窗口系统,该窗口应该停留在所有其他窗口的上面。
为主要使用的类型。
项目中的问题:绘制一个窗口显示一个lineEdit,操作lineEdit内容,光标消失。
方法:添加Qt::Dialog(本窗口继承QDialog类)
//设置窗口无边框且窗口显示在最顶层
this->setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);