Qt designer设计UI实例:双视图立体匹配与重建的可视化UI



1. 实例:双视图立体匹配与重建的可视化UI

  • 输入:一对左右眼视图的图像。
  • 任务:对输入的一对带相机参数的左右眼图像数据,实现SAD、NCC 两种局部的立体匹配方法进行重建。
  • 输出
    • 基本的交互界面供用户选择立体匹配算法以及输入的图片。
    • 将每种立体匹配方法所用的时间以及图片大小信息显示出来。
    • 可视化重建的结果,如点云,深度图,视差图等,可以使用Meshlab 软件
      或者Open3D 进行可视化

2. 一个简单的UI展示

针对上述实例要求,设计了一个简单的符合要求的UI如下图所示。界面包含图片选择(Picture)、匹配算法选择(Matching algorithm)、成本函数选择(Matching cost)、运行按钮(Run)、图片显示窗口(Picture visualization)、结果显示窗口(Results display)和输出信息窗口(Output information)

在这里插入图片描述


3. 设计流程

3.1 设计大纲

  • 根据实例要求,一个最简单的UI包括“功能展示”、“用户交互区”以及“结果可视化窗口”。
  • 功能展示:可以通过一个醒目的标题以及有序的操作步骤来告诉用户这个UI界面的主要功能是什么,还可以引导用户在没有任何先验知识的情况下按步骤操作。
  • 用户交互区:这部分类似于软件UI的导航栏,不过为了简单期间不需要设计过于复杂,按照一般的操作习惯,我们可以把用户交互区放在UI的左边,然后将有序的操作步骤依次分块呈现即可。功能区分块可以通过Containers里的Group Box实现
  • 结果可视化窗口:结果可视化区域应该占绝对主要的面积,可以放在UI右半边。分三部分——当前双视图可视化重建结果可视化以及文本信息输出

3.2 UI 设计

3.2.1 静态文本

UI中的静态文本可以使用Display Widgets中的Label组件:

  • 1:将Label小组件单击拖动到设计窗口Form中;
  • 2:右键当前的组件 → \rightarrow 选择 改变多信息文本 → \rightarrow 输入静态文本内容、修改期望的格式(字体、大小、布局等)。

在这里插入图片描述

3.2.2 划定UI的主要区域

可以使用Containers中的Scroll Area组件,好处是如果内容超出区域会自动在边界生成滑动条:

  • 手动拉伸边界调节区域大小。

在这里插入图片描述

3.2.3 功能区分块

可以使用Containers中的Group Box组件:

  • 1:将Group Box小组件单击拖动到设计窗口Form中,双击左上角的文本修改功能区命名;
  • 2:右键当前的组件 → \rightarrow 选择 改变样式表
  • 3:点击添加字体修改功能区命名期望的格式(字体、大小等)。

在这里插入图片描述

3.2.4 用户交互区

可以使用Input Widgets中的Combo Box组件提供用户选择交互,使用Buttons中的Push Button组件提供用户按钮操作:

  • 1:将Combo Box小组件单击拖动到设计窗口Form中;
  • 2:双击当前的组件 → \rightarrow 编辑 添加/删除选项
  • 3:将Push Button小组件单击拖动到设计窗口Form中,双击组件修改命名。

有序的步骤文本设置参考3.2.1 静态文本

在这里插入图片描述

3.2.5 结果可视化窗口

可以使用Display Widgets中的Graphics View组件可视化图片,使用Text Browser组件输出文本信息。完整的UI如下图所示

在这里插入图片描述


4. 自定义UI中组件的功能

Qt designer只是一个供我们设计UI的图形化编程的软件平台,它并不能帮我们完全实现所有组件的自定义功能。比如我们可以修改所有组件的文本内容和格式,甚至修改Combo Box组件中的选项,但这些选项并未被定义,运行时无法执行特定的功能。

开发一个完整的UI需要配合Python和PyQt5的包对组件进行自定义。这部分还在持续创作中,后续文章完成后会将链接放在本节。


创作不易,麻烦点点赞和关注咯!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 23:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 23:42:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 23:42:03       82 阅读
  4. Python语言-面向对象

    2023-12-26 23:42:03       91 阅读

热门阅读

  1. python初试四

    2023-12-26 23:42:03       67 阅读
  2. 单体项目-动态上下文问题

    2023-12-26 23:42:03       57 阅读
  3. React入门介绍

    2023-12-26 23:42:03       61 阅读
  4. python异常之try/finally分句

    2023-12-26 23:42:03       49 阅读
  5. 2023年大模型回顾

    2023-12-26 23:42:03       46 阅读
  6. orangepi——基于官方外设开发

    2023-12-26 23:42:03       64 阅读
  7. vue打包dist在iphone跨域问题

    2023-12-26 23:42:03       49 阅读
  8. henauOJ 1098: 数字统计

    2023-12-26 23:42:03       49 阅读
  9. K8S从harbor中拉取镜像的规则imagePullPolicy

    2023-12-26 23:42:03       46 阅读