导图社区 四五章思维导图
主窗口,主窗口框架,富文本文档管理器。事件概述,鼠标事件,键盘事件,定时器知识点总结。
编辑于2022-05-04 21:39:26四五章思维导图
主窗口QMianWindow
主窗口框架
菜单栏
在QMainWindow中可 以直接获取它的默认存在的菜单栏,向其中添加QMenu类型的 菜单对象,然后向弹出菜单中添加QAction类型的动作对象。
菜 单 是 QMenu 对 象 , 多 个 QMenu 对 象 放 置 在 一 个 QMenuBar(菜单栏)对象中。对于每个菜单,我们再为其添置动 作列表,即QAction对象
QMenu类
一个菜单包含一组动作,动作可由函数addAction()来添加
总共有三种类型的动作项:分隔线, 显示下级菜单的动作, 以及执行某个命令的动作项
当添加一个动作项后,通常需要指定一个接收者和一个槽函 数. 每当动作项发出信号triggered() ,接收者可以收到通知
如果要清空一个菜单,可以使用函数clear() ,如果要清除单 个的动作项,则使用函数removeAction()
QAction类
QAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作。 如果添加到菜单中就会显示成菜单项;如果添加到工具条,就会显示成一 个按钮
QAction类保存有关这个动作的信息,例如文本描述、图标、快捷键、回调 函数等
一个QAction动作包含了一个图标,一个菜单显示文本,一个快捷键,一 个状态栏显示文本,一个“What’s This?”显示文本和一个工具提示文本。 这些都可以在构建QAction类对象时在构造函数中指定。
工具栏
工具栏QToolBar类提供了一个包含了一组控件的可以移动的面 板,它用于提供常用命令或者选项的快速访问
可 以 使 用 绝 大 多 数 窗 口 部 件 , 最 常 用 QToolButton 和 QComboBox
使用addAction()添加部件
属性
toolButtonStyle:设置图标和相应文本的显示及其相对位置等
Movabel:设置状态栏是否可以移动
allowedArea:设置允许停靠的位置
Iconsize:属性设置图标的大小
Floatable:属性设置是否可以悬浮
中心部件
在主窗口的中心区域可以放置一个中心部件,它一般是一个编 辑器或者浏览器。这里支持单文档部件,也支持多文档部件。
采用Qt Designer创建主窗口时,默认情况下,系统已经创建了 一个中心窗口部件,它是子类化QWidget的。
代码设置中心窗口部件可以调用主窗口类setCentralWidget()方 法,每次程序调用setCentralWidget()方法时,先前存在的中心 窗口部件将被新的所替换,而且主窗口会销毁原来的部件,无 需用户处理。
从理论上来讲,任何继承自QWidget的类的派生类的实例,都 可以作为中心窗口部件使用
锚接部件
QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在 QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。
一个Dock部件包含一个标题栏和一个内容区域,可以向Dock部 件中放入任何部件。
状态栏
QStatusBar类提供了一个水平条,用来显示状态信息。
QMainWindow中默认提供了一个状态栏。在状态栏的最右端,还有 一 个 QSizeGrip 部 件 , 用 来 调 整 窗 口 的 大 小 , 可 以 使 用 setSizeGripEnabled()函数来禁用它。
子主题状态信息分为三类
临时信息
正常信息
永久信息
资源机制
Qt资源机制是一个独立于平台的(跟使用的操作系统无关)用于在可执行文件中存 储二进制文件的机制,是Qt核心机制之一
可以让需要的文件(图片、文本等)包含到程序编程生成的可执行文件(例如 exe文件)中
保证了程序中使用的文件不会丢失、不会因为存放路径而导致程序运行错误
使用资源集( Resource Collection Files)文件,即.qrc文件。qmake能够识别 这个资源集文件,并且能够根据它的描述去相应的目录下定位具体的资源
qrc资源文件是基于标准 xml格式的文本文件,列出了所有 嵌入到可执行文件中的文件 ,条理非常清晰,易于阅读和 维护。
富文本文档管理器
富文本与纯文本
富文本接口
富文本结构元素
富文本使用
文本块
富文本处理
事件
事件概述
事件机制
定义:事件是对各种应用程序需要知道的由应用程序内部或者外部产 生的事情或者动作的通称
Qt中事件被封装成一个个对象,所有的事件均继承自抽象类QEvent
Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发
Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期
当调用QApplication::exec()时,就进入了事件循环
事件机制分类
键盘事件 按键按下和松开
鼠标事件 鼠标移动 , 鼠标按键的按下和松开
拖放事件 用鼠标进行拖放
滚轮事件 鼠标滚轮滚动
绘屏事件 重绘屏幕的某些部分
定时事件 定时器到时
焦点事件 键盘焦点移动
进入和离开事件 鼠标移入 widget 之内 , 或是移出
移动事件 : widget 的位置改变
大小改变事件 : widget 的大小改变
显示和隐藏事件 : widget 显示和隐藏
窗口事件 窗口是否为当前窗口
事件处理
Qt 程序需要在main()函数创建一个QCoreApplication对象,然 后调用它的exec()函数。这个函数就是开始 Qt 的事件循环。在 执行
exec()函数之后,程序将进入事件循环来监听应用程序的事件。
当事件发生时,Qt 将创建一个事件对象。Qt 中所有事件类都继 承于QEvent。
在事件对象创建完毕后,Qt 将这个事件对象传递给QObject的 event()函数。
event()函数并不直接处理事件,而是将这些事件对象按照它们 不同的类型,分发给不同的事件处理器(event handler)。
事件传递
对于某些类别的事件, 如果在整个事件的派发过程结束后还没有被处理, 那 么这个事件将会向上转发给它的父widget, 直到最顶层窗口
鼠标事件
QMouseEvent类用来表示一个鼠标事件,当在窗口部件中按下鼠标或 者移动鼠标指针时,都会产生鼠标事件。利用QMouseEvent类可以获知鼠标 是哪个键按下了,还有鼠标指针的当前位置等信息。通常是重定义部件的鼠 标事件处理函数来进行一些自定义的操作。
滚轮事件
QWheelEvent类用来表示鼠标滚轮事件,在这个类中主要是获取滚轮移 动的方向和距离
键盘事件
QKeyEvent类用来描述一个键盘事件。当键盘按键被按下或者被释放 时,键盘事件便会被发送给拥有键盘输入焦点的部件。
定时器
QTimerEvent类:用来描述一个定时器事件。
QTimer类:实现一个定时器,可以使用信号和槽实现 定时操作,还可以设置只运行一次的定时器。