QT 中的三种基本UI类型:Main Window | Widget | Dialog

QT designer 中的 main windows 和 widget 和diaglog ,这三种基本UI类型有什么区别?分别在什么场景下使用是最佳实践?

1. Main Window(主窗口)

  • 结构特点

    • Main Window是一个具有完整应用程序框架的窗口,它包含菜单栏(Menu Bar)、工具栏(Tool Bar)、状态栏(Status Bar),并且有一个中央部件区域(Central Widget)用于放置主要的内容,还可以有多个停靠部件(Dock Widget),可以停靠在主窗口的边缘位置。
    • 这种结构为复杂的应用程序提供了标准的布局方式,方便用户进行操作和导航。
  • 适用场景

    • 大型应用程序:比如办公软件、图形设计软件、集成开发环境(IDE)等。以办公软件为例,菜单栏可以放置文件操作、编辑、视图切换等功能选项,工具栏提供常用功能的快捷按钮,状态栏用于显示当前文档状态、光标位置等信息,中央部件区域则用于显示和编辑文档内容,停靠部件可以用来显示侧边栏,如样式设置、导航目录等。
    • 需要频繁进行文件操作和功能切换:因为菜单栏和工具栏能方便地组织和提供大量的功能入口。

2. Widget(部件)

  • 结构特点

    • Widget是最基本的 UI 元素,它可以是一个简单的按钮、标签,也可以是一个复杂的自定义容器。没有预定义的菜单栏、工具栏和状态栏等结构,非常灵活,开发者可以自由地在上面添加各种子部件,设计各种布局。
    • 它可以作为独立的窗口(设置为顶层窗口,即设置windowFlags属性),也可以作为其他容器(如Main WindowDialog)中的子部件。
  • 适用场景

    • 小型独立功能模块 :比如一个简单的计数器工具、一个自定义的绘图面板等。可以将这些功能集成到一个Widget中,方便复用。
    • 作为其他容器的子部件 :在Main Window的中央部件区域,或者在Dialog中,可以放置Widget来实现具体的业务逻辑,比如在对话框中放置一个包含多个输入框和标签的Widget,用于收集用户信息。

3. Dialog(对话框)

  • 结构特点

    • Dialog是一种用于与用户进行交互的临时窗口,它可以有按钮(如确定、取消按钮),用于用户进行选择或输入信息后进行确认操作。它通常没有菜单栏和工具栏,样式上更倾向于简洁的对话式设计。
    • Dialog分为模态对话框和非模态对话框。模态对话框在显示时会阻塞用户对其他窗口的操作,直到对话框关闭;非模态对话框则不会阻塞,用户可以在对话框显示时继续操作其他窗口。
  • 适用场景

    • 信息提示:比如显示警告信息(如文件保存失败提示)、错误信息(如用户名密码错误提示)、提示信息(如软件更新提示)等。

    • 用户输入:当需要用户输入一些信息时,如打开文件对话框让用户选择文件路径、保存文件对话框让用户指定文件名和保存路径,或者弹出一个对话框让用户输入用户名和密码进行登录等。

总之,在实际开发中,根据应用程序的功能需求和交互方式来选择合适的 UI 类型,通常大型应用以Main Window作为主框架,内部使用Widget来实现具体功能,用Dialog来处理临时性的交互。

相关推荐
2401_8955213439 分钟前
SpringBoot Maven快速上手
spring boot·后端·maven
disgare1 小时前
关于 spring 工程中添加 traceID 实践
java·后端·spring
ictI CABL1 小时前
Spring Boot与MyBatis
spring boot·后端·mybatis
小江的记录本3 小时前
【Linux】《Linux常用命令汇总表》
linux·运维·服务器·前端·windows·后端·macos
yhole6 小时前
springboot三层架构详细讲解
spring boot·后端·架构
香香甜甜的辣椒炒肉6 小时前
Spring(1)基本概念+开发的基本步骤
java·后端·spring
白毛大侠7 小时前
Go Goroutine 与用户态是进程级
开发语言·后端·golang
ForteScarlet7 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·开发语言·后端·ios·开源·kotlin
大阿明7 小时前
SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
java·spring boot·后端
Binary-Jeff7 小时前
Spring 创建 Bean 的关键流程
java·开发语言·前端·spring boot·后端·spring·学习方法