一、QT的主要窗体类

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


窗体类的继承图如下图:

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

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



QMainWindow

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

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


二、setAttribute()函数

  • 功能:​用于定义窗体的一些属性,例如打开或者关闭属性等

函数原型:

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


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

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


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


setWindowFlags()、setWindowFlag()函数:

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

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

Qt:33---QT的窗体类以及窗体设置函数_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的窗体类以及窗体设置函数_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的窗体类以及窗体设置函数_QT的窗体类以及窗体设置函数_12

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



windowOpacity()函数

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



演示案例

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

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

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

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


七、演示案例

  • 一个多窗口应用程序的设计案例,见文章:​​​