Qt——day02

文章目录

一、QMainWindow

  QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。
在这里插入图片描述

1.菜单栏

  菜单栏一般只创建一个,在一个窗口中。

1.1 创建菜单栏

  (1)创建了一个菜单栏,这是一个对象,窗口也是一个对象。要将菜单栏放到窗口中,就是要将两个对象联系起来。以后也要注意,当创建了一个对象,记得要与其他的对象联系起来。

在这里插入图片描述
(2)代码:

	// 1.菜单栏
    QMenuBar * bar = menuBar();
    
    // 将菜单栏放到窗口中
    setMenuBar(bar);

1.2 往菜单栏添加菜单

(1)使用 addMenu() 方法,在菜单栏添加菜单,返回值是一个 QMenu 的指针。

	// 1.1 在菜单栏上增加菜单
    QMenu * fileMenu = bar->addMenu("文件");
    QMenu * editMenu = bar->addMenu("编辑");

(2)效果:
在这里插入图片描述

1.3 往某个菜单添加菜单动作

  平时,我们在使用 Word 等编辑软件的时候,我们点击菜单栏里面的 “文件” 这个菜单,就会显示菜单里面的菜单项,也就是我们可以做什么。那么现在就来往菜单里面添加菜单动作。
在这里插入图片描述

  (1)使用 addAction() 函数添加菜单项。返回值是 QAction 的一个指针,当不知道返回值是什么类型,就把鼠标放在 addAction() 上,就会显示。

 // 1.2 在菜单上添加菜单动作,也就是某个菜单里面也可以有哪些操作
   QAction * newAction = fileMenu->addAction("新建");
   QAction * openAction = fileMenu->addAction("打开");

  (2)效果:
在这里插入图片描述

1.4 在菜单项间增加分割线

  使用的是 addSeparator();
在这里插入图片描述
(1)代码:在新建和编辑中添加分割线,就在两个菜单项中写上添加分割线代码:

QAction * newAction = fileMenu->addAction("新建");

   // 添加分割线
   fileMenu->addSeparator();

   QAction * openAction = fileMenu->addAction("打开");

1.5 菜单栏数量问题

  一般情况,一个窗口只有一个菜单栏,来看看代码:
在这里插入图片描述
  如果一个窗口中的某个对象只能有一个,那么一般直接调用系统提供的函数,然后使用 set 添加到窗口中。

2.工具栏

  工具栏就类似于下面图片的这些提供给用户使用的工具:
在这里插入图片描述

2.1 创建工具栏对象

  还是要注意,工具栏是一个对象,窗口是一个对象,要把工具栏放到窗口中,就要将这两个对象联系起来:

 // 创建工具栏
   QToolBar * toolBar = new QToolBar(this); // 将工具栏对象与窗口联系起来
   
   addToolBar(toolBar); // 将工具栏放到窗口中

在这里插入图片描述

2.2 改变工具栏的默认位置

  (1)工具栏的位置有在顶部的,也有在左,右两边的,那么怎么改变他们的位置。

 工具条是一个可移动的窗口,它的停靠区域由QToolBar的allowAreas决定,包括:

 Qt::LeftToolBarArea 停靠在左侧

 Qt::RightToolBarArea 停靠在右侧

 Qt::TopToolBarArea 停靠在顶部

 Qt::BottomToolBarArea 停靠在底部

 Qt::AllToolBarAreas 以上四个位置都可停靠

(2)

// 创建工具栏
   QToolBar * toolBar = new QToolBar(this);
   addToolBar(Qt::LeftToolBarArea,toolBar);

在这里插入图片描述

2.3 设置工具栏运行停靠的位置

  (1)使用setAllowedAreas()函数指定停靠区域,其实看单词就知道是什么意思了。下面这个是只允许工具栏停在左或者右侧,放在其他的位置是不行的。

setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea)

  (2)效果

 toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

在这里插入图片描述
在这里插入图片描述

2.4 设置工具栏浮动

  使用 setFloatable() 函数来设置工具栏是否可以浮动。这个是什么意思呢?

  (1)当我们设置了工具栏可以浮动,并且已经设置了工具栏可以停靠的位置。如果在移动工具栏时,停靠的位置不对,那么工具栏就会显示为一个小的方框,停在那个位置,而不会展开工具栏。

在这里插入图片描述

  (2)当设置工具栏不可以浮动,并且工具栏只允许在左侧或者右侧停靠。如果停靠的位置不是最左侧或者最右侧,那么工具栏会自动返回左侧或者右侧,接近哪一侧就返回哪一侧。

// 设置浮动
   toolBar->setFloatable(false);

2.5 设置工具栏移动性

  这个属性的设置就相当于是一个总开关,如果将工具栏设置为不可移动,那么只能停靠在初始化的位置,也不能浮动。

使用setMoveable()函数设定工具栏的可移动性:
setMoveable(false//工具条不可移动, 只能停靠在初始化的位置上

2.6 往工具栏添加工具

  使用 addAction() 往工具栏中添加工具,现在我们将 “新建” 和 “编辑” 这两个动作添加到工具栏中:

 toolBar->addAction(newAction);
   toolBar->addAction(openAction);

在这里插入图片描述

2.7 工具栏数量问题

  在一个窗口中可以有多个工具栏,来看一下代码:
在这里插入图片描述
  一般来说,如果需要自己使用 new + 构造函数的这种方法来创建的对象,就可以有多个。并且一般来说可以有多个的对象是用 add 方法来添加到窗口中的。

  如果一个不够,就再 new 一个,再添加到窗口中。

3. 状态栏

  状态栏一般来说就是记录了某个时刻使用该软件的状态。比如说 Word 软件中的状态栏:
在这里插入图片描述

3.1 状态栏的数量

  一般来说,一个窗口只有一个转态栏。所以创建的时候,是直接调用系统提供的函数。添加到窗口中使用的是 set 的这种方式:

// 状态栏
   QStatusBar * staBar = statusBar();
   setStatusBar(staBar);

在这里插入图片描述

3.2 往状态栏添加部件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值