编程学习
Qt学习10:MainWindow浅析
00 分钟
2023-6-12
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于我的个人博客:欢迎大佬们来逛逛
 

QMainWindow的基本结构

  • QMenuBar:菜单栏
  • QToolBar:工具栏
  • QDockWidget:浮动窗口
  • QStatusBar:状态栏
notion image

QMenuBar

菜单栏:只能有唯一一个。
notion image
通过 menuBar() 来获得MainWindow唯一的菜单栏
继承自:QWidget
基本操作函数:
  1. addAction:添加行为QAction
  1. addMenu:添加菜单
  1. addSeparator:添加分割线
我们在添加Menu后还可以接着对Menu进行嵌套操作。比如对一个菜单项添加项目:addAction
我们可以指定很多对此菜单项的行为的操作:
例如直接对这个菜单项行为添加快捷键
对于菜单条的addMenu可以直接使用 “文本(&E)” 的方式设置快捷键
信号:
  1. hovered:鼠标悬停
  1. triggered:鼠标点击
槽函数:
  1. setVisible:设置是否可见

QToolBar

工具栏:可以有多个。
notion image
在一个工具栏上面可以添加很多控件
它继承自:QWidget
通过 addToolBar() 来获得工具栏。
基本操作函数:
  1. addAction:添加行为
  1. addWidget添加控件。通过这个函数可以添加很多继承自QWidget的控件,例如按钮,文本框等。
  1. setFloatable:设置是否浮动
  1. setMoveable:设置是否能够移动
在工具栏上添加很多控件以实现工具栏的效果:

QStatusBar

状态栏:只能有唯一一个
notion image
表示这个窗口的状态。
它继承自:QWidget
使用 statusBar() 来获得窗口中唯一的状态栏控件。
基本操作函数:
  1. addAction:添加行为
  1. addWidget:添加控件
  1. addPermanentWidget:在右侧添加控件与行为(默认在左边)
信号:
  1. messageChanged:状态信息改变时
槽函数:
  1. showMessage:显示信息
  1. clearMessage:清除信息
我们可以使用 showMessage 来对状态栏显示某种信息:

QDockWidget

浮动(可停靠)窗口:可以有多个
notion image
类似于 VS 中的窗口。
它继承自:QWidget
它表示一个浮动(可停靠)的窗口,可以拖动它的位置,或者固定它的位置。
注意:如果需要对这个窗口进行测试,必须首先设置一个中心区域
因为只有设置了这个中心文本区域后,我们才能看到浮动窗口的正确的显示位置。
通过 addDockWidget() 来添加浮动窗口:在某个区域添加一个浮动窗口
基本操作函数:
  1. tabifyDockWidget:设置浮动窗口的重叠
  1. setFloating:设置可浮动,否则是停靠的。

QSystemTrayIcon

系统的托盘图片:只能有唯一一个。
notion image
图中的 M 就是我的程序的图片。
通过QSystemTrayIcon 的构造函数来创建一个托盘图标,并且显示出来:
注意:必须传递一个图片和调用show(),否则不会显示。
它继承自:QObject
基本操作函数:
  1. setContextMenu:设置上下文菜单,可用于鼠标右键图标显示的菜单
  1. setIcon:设置图标
  1. setToolTip:设置图标的文本解释
信号:
  1. activated:激活状态,enum QSystemTrayIcon::ActivationReason的枚举表示了所有可能的状态
槽函数:
  1. hide:隐藏
  1. show:显示
  1. showMessage:显示一条信息
我们为这个托盘图标设置了一个菜单,并且鼠标右键和双击都可以显示出来。
我们还在菜单中设置了一些行为:控制程序退出与窗口最小化切换。

评论
  • Twikoo
  • Valine