导图社区 Qt一至四章思维导图
Qt一至三章思维导图:包含主窗口QMianWindow,在QMainWindow中可以直接获取它的默认存在的菜单栏,向其中添加QMenu类型的菜单对象,然后向弹出菜单中添加QAction类型的动作对象。等等
编辑于2022-05-05 15:52:58Qt一至三章思维导图
第一个Qt程序
Qt与Qt Creator
Qt
Qt是一个跨平台应用程序和UI开发框架,可以理解为开发包或 者库文件
Qt Creator
Qt Creator是全新的跨平台 Qt IDE(集成开发环境)
Qt 下载
Qt官网下载:https://www.qt.io/download/
资源下载页面:https://download.qt.io/official_releases/qt/5.8/5.8.0/
注意事项
安装路径中不能有中文。
安装开始是否登陆或者注册Qt账号, 不影响程序的安装,可以直接跳过。
在选择组件界面,可以选择安装一些 模块,单击一个组件,可以在右侧显 示该组件的详细介绍,初学者建议保 持默认选择。
Qt Creator简介
1)菜单栏(Menu Bar)
2)模式选择器(Mode Selector)
3)构建套件选择器(Kit Selector )
4)定位器(Locator)
5)输出窗格(Output panes)
Qt 工具
Qt Assistant(Qt助手)
Qt Linguist(Qt语言家)
Qt Designer(Qt设计师)
第一个Qt程序
使用纯代码方式编写
使用.ui文件
窗口部件
窗口(Widget)
窗口概念
窗口部件
简称部件,是Qt中建立用户界面的主要 元素。像主窗口、对话框、标签、还有以后要介绍到的按钮、 文本输入框等都是窗口部件
窗口
把没有嵌入到其他部件中的部件称为窗口,一般的,窗 口都有边框和标题栏,就像程序中的widget和label一样。 窗口就是没有父部件的部件,所以又称为顶级部件(top-level widget)。
子部件
非窗口部件。在Qt中大部分部件被 用作子部件,嵌入在别的窗口中。
几何布局
包含框架
不包含框架
窗口类
QMainWindow
带有菜单栏和工具栏的主窗口类
QDialog
是重要的信息显示和获取输入数据的用户界面对象, 是各种对话框的基类
QWidget
QWidget类是所有用户界面对象的基类,被称为基础 窗口部件,继承自QObject类和QPaintDevice类。所有的窗口部 件都继承自QWidget
窗口切换
回调机制
信号与槽机制
信号与槽
信号
信号是一种特殊类型的成员函数。它们被定义为当某个事件发生 时就被发射
槽
槽是标准的类成员函数,可以象调用其它函数一样调用它们
信号与槽的关联
一个信号可以关联到多个槽上
多个信号也可以关联到同一个 槽上
一个信号还可以关联到另一个 信号上
如果存在多个槽与某个信号相 关联,那么,当这个信号被发 射时,这些槽将会一个接一个 地执行,但是它们执行的顺序 是随机的,无法指定它们的执 行顺序
信号与槽的关联方式
connect()关联
在设计模式关联
自动关联
信号与槽的优越性
信号和槽机制是类型安全的,相关联的信号和槽的参数必须匹配
信号和槽可以使用任意类型的任意数量的参数
信号和槽是松耦合的,信号发送者不知道也不需要知道接受者的信息
虽然信号和槽机制提供了高度的灵活性,但就其性能而言,还是慢于 回调机制的。当然,这点性能差异通常在一个应用程序中是很难体现 出来的
对话框(Dialog)
对话框种类
模态对话框
就是在其没有被关闭之前,用户不能与同一个应用 程序的其他窗口进行交互,直到该对话框关闭。这时往往是需要 对话框的返回值进行下面的操作确认窗口。
非模态对话框
当被打开时,用户既可选择和该对话框进行交互, 也可以选择同应用程序的其他窗口交互。弹出窗口之后,调用即 刻返回,继续下面的操作
显示对话框
标准对话框分类
颜色对话框
文件对话框
字体对话框
输入对话框
消息对话框
进度对话框
错误信息对话框
向导对话框
其他窗口部件
QFrame类族
按钮部件
行编辑器
数值设定框
滑块部件
布局管理器
简述
Qt的布局系统提供了一个简单的和强有力的方式,来自动排列 窗口子控件布局
子主所 有 QWidget 子 类 可 以 使 用 布 局 来 管 理 他 们 的 子 控 件 。 QWidget::setLayout()函数可以为一个控件布局题
Qt布局类
QLayout类是布局管理器的基类,它是一个抽象基类。该类继承自QObject 和QLayoutItem类,而QLayoutItem类提供了一个供QLayout操作的抽象项目。
布局管理器常见属性
其它因素
部件大小
伸缩因子
主窗口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格式的文本文件,列出了所有 嵌入到可执行文件中的文件 ,条理非常清晰,易于阅读和 维护。
富文本文档管理器
富文本与纯文本
富文本接口
富文本结构元素
富文本使用
文本块
富文本处理