QT探索(一)读取和保存的实现
前言
由于需要构建一款可视化编辑工具,采用QT+VTK的方案,所以开始接触QT,安装版本为QT5.12.8和VTK7.1.1。目前的计划是根据需要实现的功能查找对应的QT实现方法,文章会顺着“功能需求—>QT方法—>代码片段”进行梳理,如果有时间的话设计一款具体的可视化交互工具并将完整的代码补充在此。
一、读取/保存数据
梳理一下这个行为的逻辑,如我们一般使用的界面化交互工具,实现读取/保存的功能需要:
- 按钮,点击触发对应功能
- 弹窗,选择文件/文件夹路径
- 信号传递,例如获取的路径
- 功能函数,实现具体功能
1、2、4比较好理解,信号传递涉及到QT的核心通信机制:signal/slot,即信号/槽。
二、信号/槽机制
官方的Documentation介绍了该机制的优越之处,此处我们主要关心这个东西的用法。简言之,signal发出信号,与之关联的slot执行对应动作,触发信号时一般带上关键字emit。先来看代码:
class MainWindow() {
MainWindow(QWidget* parent)
public signals:
// 信号,发送路径
void LoadData(const std::string& path);
private: