type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于我的个人博客:欢迎大佬们来逛逛
QMainWindow的基本结构
- QMenuBar:菜单栏
- QToolBar:工具栏
- QDockWidget:浮动窗口
- QStatusBar:状态栏
QMenuBar
菜单栏:只能有唯一一个。
通过
menuBar()
来获得MainWindow唯一的菜单栏继承自:QWidget
基本操作函数:
- addAction:添加行为QAction
- addMenu:添加菜单
- addSeparator:添加分割线
我们在添加Menu后还可以接着对Menu进行嵌套操作。比如对一个菜单项添加项目:
addAction
我们可以指定很多对此菜单项的行为的操作:
例如直接对这个菜单项行为添加快捷键
对于菜单条的addMenu可以直接使用
“文本(&E)”
的方式设置快捷键信号:
- hovered:鼠标悬停
- triggered:鼠标点击
槽函数:
- setVisible:设置是否可见
QToolBar
工具栏:可以有多个。
在一个工具栏上面可以添加很多控件
它继承自:
QWidget
通过
addToolBar()
来获得工具栏。基本操作函数:
- addAction:添加行为
- addWidget:添加控件。通过这个函数可以添加很多继承自QWidget的控件,例如按钮,文本框等。
- setFloatable:设置是否浮动
- setMoveable:设置是否能够移动
在工具栏上添加很多控件以实现工具栏的效果:
QStatusBar
状态栏:只能有唯一一个
表示这个窗口的状态。
它继承自:
QWidget
使用
statusBar()
来获得窗口中唯一的状态栏控件。基本操作函数:
- addAction:添加行为
- addWidget:添加控件
- addPermanentWidget:在右侧添加控件与行为(默认在左边)
信号:
- messageChanged:状态信息改变时
槽函数:
- showMessage:显示信息
- clearMessage:清除信息
我们可以使用 showMessage 来对状态栏显示某种信息:
QDockWidget
浮动(可停靠)窗口:可以有多个
类似于 VS 中的窗口。
它继承自:
QWidget
它表示一个浮动(可停靠)的窗口,可以拖动它的位置,或者固定它的位置。
注意:如果需要对这个窗口进行测试,必须首先设置一个中心区域:
因为只有设置了这个中心文本区域后,我们才能看到浮动窗口的正确的显示位置。
通过
addDockWidget()
来添加浮动窗口:在某个区域添加一个浮动窗口基本操作函数:
- tabifyDockWidget:设置浮动窗口的重叠
- setFloating:设置可浮动,否则是停靠的。
QSystemTrayIcon
系统的托盘图片:只能有唯一一个。
图中的 M 就是我的程序的图片。
通过QSystemTrayIcon 的构造函数来创建一个托盘图标,并且显示出来:
注意:必须传递一个图片和调用show(),否则不会显示。
它继承自:
QObject
基本操作函数:
- setContextMenu:设置上下文菜单,可用于鼠标右键图标显示的菜单
- setIcon:设置图标
- setToolTip:设置图标的文本解释
信号:
- activated:激活状态,enum QSystemTrayIcon::ActivationReason的枚举表示了所有可能的状态
槽函数:
- hide:隐藏
- show:显示
- showMessage:显示一条信息
我们为这个托盘图标设置了一个菜单,并且鼠标右键和双击都可以显示出来。
我们还在菜单中设置了一些行为:控制程序退出与窗口最小化切换。
- 作者:Yuleo
- 链接:https://www.helloylh.com/article/qt10
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。