Qt的窗口设置

本文介绍Qt的窗口设置。

采用Qt开发界面程序,会涉及到窗口的设置,如窗口标题栏是否显示,是否有最小,最大化按钮等,窗口当前显示最小化,最大化等。本文简要介绍常用的窗口设置方法。

1.窗口属性

窗口属性设置主要用于设置窗口的属性,函数原型为:

cpp 复制代码
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

常用的属性设置如下:

|----------------------|-------------------|
| 属性 | 说明 |
| Qt::WA_DeleteOnClose | 非模态对话框创建,关闭时窗口被析构 |

2.窗口标志

窗口标志设置主要用于设置窗口的标志,这些标志与窗口的显示有关。可以使用"|"来进行组合,函数原型为:

cpp 复制代码
void setWindowFlags(Qt::WindowFlags type)

单独设置某一个标志,可以使用如下函数:

cpp 复制代码
void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)

常用的标志设置如下:

|------------------------------|---------------|
| 标志 | 说明 |
| Qt::Widget | Widget标志 |
| Qt::Window | 窗口标志 |
| Qt::Dialog | 对话框标志 |
| Qt::FramelessWindowHint | 窗口无边框 |
| Qt::CustomizeWindowHint | 关闭窗口标题栏 |
| Qt::WindowMinimizeButtonHint | 增加一个最小化按钮 |
| Qt::WindowMaximizeButtonHint | 增加一个最大化按钮 |
| Qt::WindowMinMaxButtonsHint | 增加一个最小化和最大化按钮 |
| Qt::WindowCloseButtonHint | 增加一个关闭按钮 |
| Qt::WindowShadeButtonHint | 窗口处于最上层 |
| Qt::WindowStaysOnTopHint | 窗口处于最下层 |

设置窗口标志用的还是比较多的,如对话框设置为无边框形式,可使用如下设置:

cpp 复制代码
setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::CustomizeWindowHint);

3.窗口状态

窗口状态设置主要用于设置窗口的状态,窗口的状态包括窗口的最大化,最小化,正常显示等,函数原型为:

cpp 复制代码
void QWidget::setWindowState(Qt::WindowStates windowState)

常用的标志设置如下:

|----------------------|---------------|
| 状态 | 说明 |
| Qt::WindowNoState | 正常状态 |
| Qt::WindowMinimized | 最小化 |
| Qt::WindowMaximized | 最大化 |
| Qt::WindowFullScreen | 填充整个屏幕 |
| Qt::WindowActive | 活动窗口,如可接受键盘输入 |

4.窗口模态

窗口模态设置主要用于设置窗口的模态,窗口的模态包括模态窗口,非模态窗口,函数原型为:

cpp 复制代码
void setWindowModality(Qt::WindowModality windowModality)

常用的模态设置如下:

|-----------------|-----|
| 模态 | 说明 |
| Qt::NonModal | 非模态 |
| Qt::WindowModal | 模态 |

5.窗口透明度

窗口透明度设置主要用于设置窗口的透明度,它的形参为一个浮点数,取值范围为0-1,函数原型为:

cpp 复制代码
void setWindowOpacity(qreal level)

总结,本文介绍了Qt的窗口设置。

相关推荐
傻乐u兔5 小时前
C语言进阶————指针4
c语言·开发语言
大模型玩家七七5 小时前
基于语义切分 vs 基于结构切分的实际差异
java·开发语言·数据库·安全·batch
历程里程碑5 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
牛奔7 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路10 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly20240612 小时前
Bootstrap 警告框
开发语言
2601_9491465313 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧13 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX13 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb010313 小时前
C++课后习题训练记录Day98
开发语言·c++