【Qt】:窗口

一.概述

Qt窗口是通过QMainWindow类来实现的。

QMainWindow是一个为用户提供主窗口程序的类,继承自QWidget类,并且提供了一个预定义的布局。QMainWindow包含一个菜单栏(menu bar)、多个工具E(tool DaIr’s)、多1行园口多以接部件)(dock widgets)、一个状态栏(status bar)和一个中心部H什(cenlra wIugeC,t他位.用程序的基础,如文本编辑器,图片编辑器等。如下图为QMainwindow中各组件所处的位置:

在这里插入图片描述

从上往下分别是菜单栏,工具栏,子窗口,中央窗口,状态栏。

二.菜单栏

Qt中的菜单栏是通过QMenuBar这个类来实现的。一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。菜单栏中包含菜单.菜单中包含菜单项.

在这里插入图片描述

创建一个菜单

1.一个简单的菜单

创建流程:菜单栏->菜单->菜单项

菜单栏的创建可以借助于QMainWindow类提供的menuBar()函数来实现
创建菜单,并通过 QMenu 提供的 addMenu() 函数来添加菜单
在Qt中,并没有专⻔的菜单项类,可以通过 QAction 类,抽象出公共的动作

在这里插入图片描述

在这里插入图片描述

如果想让菜单项可点击也很简单,只需要设置槽函数与trigge(点击信号)相连即可。

小知识:如果上述我们重复创建了menuBar,就会导致旧的menuBar脱离对象树,从而无法释放,造成内存泄漏。更推荐使用this->menuBar()的方式创建,如果已经创建了menuBar则返回已经创建了的,否则就新建一个。

2.添加快捷键

如果想要添加快捷键,只需要&+按键,例如:给文件取快捷键F,只需要在文件后面加&F即可。键盘alt+f即可。

在这里插入图片描述

3.嵌套子菜单

菜单里也可以嵌套子菜单

在这里插入图片描述

在这里插入图片描述

4.添加下划线

在菜单项之间可以添加分割线。添加分割线是通过 QMenu 类提供的addSeparator() 函数来实现;

在这里插入图片描述

在这里插入图片描述

5.添加图标

依然使用qrc文件,利用函数setIcon就可以设置。

在这里插入图片描述

在这里插入图片描述

三.工具栏

工具栏是应用程序中集成各种功能实现快捷键使用的一个区域。可以有多个,也可以没有,它并不是应用程序中必须存在的组件。它是一个可移动的组件,它的元素可以是各种窗口组件,它的元素通常以图标按钮的方式存在。如下图为工具栏的示意图:

在这里插入图片描述

1.创建一个简单的工具栏

在这里插入图片描述

在这里插入图片描述

当然也可以创建图标。

在这里插入图片描述

在这里插入图片描述

2.设置工具栏的停靠位置

工具栏停靠位置的设置有两种方式。一种是在创建工具栏的同时指定停靠的位置,另一种是通过QToolBar类提供的setAllowedAreas()函数来设置。

⽅式⼀:创建⼯具栏的同时指定其停靠的位置

在创建工具栏的同时,也可以设置工具栏的位置,其默认位置是在窗口的最上面;如上述代码,默认在最上面显示。工具栏允许停靠的区域由QToolBar类提供的allowAreas()函数决定,其中可以设置的位置包括:

  1. Qt::LeftToolBarArea 停靠在左侧
  2. Qt::RightToolBarArea 停靠在右侧.
  3. Qt::TopToolBarArea 停靠在顶部.
  4. Qt:.BottomToolBarArea 停靠在底部.
  5. Qt:AllToolBarAreas 以上四个位置都可停靠

在这里插入图片描述

在这里插入图片描述

⽅式⼆:使⽤QToolBar类提供的setAllowedAreas()函数设置停靠位置

在这里插入图片描述

在这里插入图片描述

在创建工具栏的同时指定其停靠的位置,指的是程序运行时工具栏默认所在的位置;而使用setAllowedAreas()函数设置停靠位置,指的是工具栏允许其所能停靠的位置。

在这里插入图片描述

四.状态栏

状态栏是应用程序中输出简要信息的区域。一般位于主窗口的最底部,一个窗口中最多只能有一个状态栏。在Qt中,状态栏是通过QstatusBar类来实现的。在状态栏中可以显示的消息类型有:

实时消息:如当前程序状态
永久消息:如程序版本号,机构名称
进度消息:如进度条提示,百分百提示

代码示例:创建一个状态栏

在这里插入图片描述

在这里插入图片描述

如果时间设置为0或者默认,就是长久显示。

状态栏里除了可以显示文本外,也可以显示器件。

在这里插入图片描述

在这里插入图片描述

五.浮动窗口

浮动窗口的创建是通过QDockWidget类提供的构造方法QDockWidget()函数动态创建的;浮动窗口其实就是子窗口。

代码示例

1.创建一个浮动窗口

在这里插入图片描述

在这里插入图片描述

2.给窗口添加各种属性

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. <span style='color:red;'>Qt</span><span style='color:red;'>窗口</span>

    Qt窗口

    2024-04-11 17:14:01      28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 17:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 17:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 17:14:01       82 阅读
  4. Python语言-面向对象

    2024-04-11 17:14:01       91 阅读

热门阅读

  1. 小白学习python的路线

    2024-04-11 17:14:01       34 阅读
  2. c#编程基础学习之数据类型

    2024-04-11 17:14:01       35 阅读
  3. [html]网页结构以及常见标签用法

    2024-04-11 17:14:01       30 阅读
  4. C语言程序设计每日一练(1)

    2024-04-11 17:14:01       38 阅读
  5. 在前端开发中用到了哪些设计模式?

    2024-04-11 17:14:01       39 阅读
  6. python - argparse、configparser的用法

    2024-04-11 17:14:01       41 阅读
  7. Python零基础从小白打怪升级中~~~~~~~Python中的函数

    2024-04-11 17:14:01       33 阅读