一、QT的主要窗体类
  • QT常用的窗体基类为QWidget、QDialog、QMainWindow

窗体类的继承图如下图:

Qt:33---QT的窗体类以及窗体设置函数_模态

  • QWidget:在没有指定父容器时可作为独立的窗口,指定父容器后可以作为容器的内部组件
  • QDialog:用于设计对话框,以独立窗口显示(消息对话框,文件对话框等),详情见文章:javascript:void(0)
  • QMainWindow:用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示
  • QSplashScreen:用作应用程序启动时的splash窗口,没有边框
  • QMdiSubWindow:用于为QMdiArea提供一个子窗体,用于MDI(多文档)应用程序的设计
  • QDesktopWidget:具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等
  • QWindow:通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立窗体

QMainWindow

  • 菜单栏(Menu Bar)
  • 工具栏(ToolBars)
  • 浮动部件(Duck Widgets)
  • 主窗口(Central Widget)
  • 状态栏(Status Bar)

Qt:33---QT的窗体类以及窗体设置函数_QT的窗体类以及窗体设置函数_02

二、setAttribute()函数
  • 功能:用于定义窗体的一些属性,例如打开或者关闭属性等

函数原型:

Qt:33---QT的窗体类以及窗体设置函数_菜单栏_03

  •  参数1:下图
  • 参数2:代表开启/关闭参数1的属性。默认为true(代表开启属性),可以设置为false(关闭该属性)

Qt:33---QT的窗体类以及窗体设置函数_QT的窗体类以及窗体设置函数_04

三、setWindowFlags()、setWindowFlag()、windowFlags()函数

setWindowFlags()、setWindowFlag()函数:

  • 功能:用于设置/得到窗体标记
  • 一种为一次设置多个属性、另一种为一次只能设置一个属性

Qt:33---QT的窗体类以及窗体设置函数_菜单栏_05

Qt:33---QT的窗体类以及窗体设置函数_最小化_06

  • Qt::Widget、Qt::Window等表示窗体类型的常量可以使窗体具有缺省的外观设置。如果设置为Qt::Dialog类型,则窗体具有对话框的缺省外观,例如标题栏没有最小化、最大化按钮
  • 控制窗体显示效果和外观的设置可定制窗体的外观,例如设置一个窗体只有最小化最大化按钮,没有关闭按钮

Qt:33---QT的窗体类以及窗体设置函数_QT的窗体类以及窗体设置函数_07

windowFlags()函数:

  • 功能:用于得到窗体标记值
  • 返回值:Qt::WindowFlags类型
四、setWindowState()、windowState()函数

setWindowState()函数

  • 功能:用于使窗口处于最小化、最大化等状态

Qt:33---QT的窗体类以及窗体设置函数_模态_08

Qt:33---QT的窗体类以及窗体设置函数_应用程序_09

windowState()函数

  • 功能:返回窗体的最小化、最大化等状态值
  • 返回值:Qt::WindowsStates类型
五、setWindowModality()、windowModality()函数

setWindowModality()函数

  • 功能:用于设置窗口的模态,只对窗口类有用

Qt:33---QT的窗体类以及窗体设置函数_菜单栏_10

Qt:33---QT的窗体类以及窗体设置函数_模态_11

windowModality()函数

  • 功能:返回窗体的模态状态值
  • 返回值:Qt::WindowsModality类型
六、setWindowOpacity()、windowOpacity()函数

setWindowOpacity()函数

  • 功能:用于设置窗口的透明度

Qt:33---QT的窗体类以及窗体设置函数_菜单栏_12

  • 参数level在1.0(完全不透明)到0.0(完全透明)之间
  • 窗口透明度的缺省值为1.0

windowOpacity()函数

  • 功能:返回窗体的透明度值
  • 返回值:qreal类型

演示案例

  • 设置窗体透明度为0.5,可以看到窗体透明度降低

Qt:33---QT的窗体类以及窗体设置函数_应用程序_13

  • 先得到原先的窗体透明度值,然后再设置,可以看到窗体无变化

Qt:33---QT的窗体类以及窗体设置函数_QT的窗体类以及窗体设置函数_14

七、演示案例