1. 认识QT designer
1.1 在 Qt 的 “templates/forms” 目录下,是预定义的窗体模板,以下是一些常见的模板:
①“mainwindow.ui”(主窗体):这是创建一个主窗体的模板,它通常是应用程序的主要窗口,可以包含菜单栏、工具栏、状态栏和其他控件。
②“dialog.ui”(对话框):这是创建一个对话框的模板,对话框通常用于更小规模的单独任务,例如输入信息、进行选项选择或显示简短的提示信息等。
③“widget.ui”(小部件):这是创建一个自定义小部件的模板,小部件是一种可重用的界面元素,可以在多个窗体中使用。可以根据需要自定义小部件的外观和行为。
所有的模板文件都是以 “.ui” 扩展名保存,它们使用 Qt 的UI文件格式,其中包含了界面的结构、布局和控件的属性等信息。 使用这些模板文件,让我们可以快速创建相应类型的窗体,并在 Qt Design Studio、Qt Creator 或其他支持的工具中进一步编辑和定制它们。
1.2 “窗口组件” 是在创建新窗口时可以选择的一组预定义的 UI 组件选项。下面是详细介绍:
①QDockWidget 是 Qt 中用于创建可停靠的面板窗口的控件。它可以作为主窗口中的一个子部件,可以通过拖动和停靠的方式在主窗口的边缘或其他停靠区域之间移动和重新排列。QDockWidget 具有以下特点和功能:
1)可停靠性:QDockWidget 可以停靠在主窗口的边缘(上、下、左、右)或其他 QDockWidget 实例的周围。
2)标题栏:每个 QDockWidget 有一个标题栏,上面显示着标题和一个可用于关闭和浮动的按钮。
3)可浮动性:QDockWidget 还可以在独立的浮动窗口中显示,可以从主窗口中分离出来,并移动到桌面上的任何位置。
4)可调整大小:QDockWidget 可以根据需要调整大小,以适应其内容的大小和布局需求。
5)可隐藏性:QDockWidget 还可以被隐藏,只显示其标题栏,以节省界面空间。
②QFrame 是 Qt 中的一个控件类,用于创建一个带有边框和背景的独立区域,类似于一个简单的容器或装饰框架。QFrame 提供了一些常用的方法和属性,可以用于自定义其外观和行为。以下是 QFrame 的一些常见特点和用途:
1)边框样式:QFrame 可以设置不同的边框样式,如线条边框、凹陷边框或凸出边框等。可以根据需要选择适合的边框样式。
2)背景色和背景图片:可以为 QFrame 设置背景色或背景图片,使其在界面中与其他控件区分开来或提供视觉效果。
3)布局容器:QFrame 可以用作布局的容器,可以将其他控件放置在 QFrame 内,实现灵活的布局和组织。
4)容器装饰:QFrame 还可以用作装饰框架,可以将多个相关的控件放置在 QFrame 内,为它们提供一个统一的背景、边框和外观。这样可以使界面更加一致和美观。
5)事件处理:QFrame 可以接收并处理鼠标事件、键盘事件和其他用户输入事件。可以为 QFrame 定义事件处理函数,以响应用户的交互动作。
6)网格布局:QFrame 还具有网格布局的能力,可以方便地将控件按行列进行排列,实现灵活的网格布局。
③QGroupBox 是 Qt 中的一个控件类,用于创建一个带有标题和边框的组合框,用于将一组相关的控件进行分组和组织。QGroupBox 为这些控件提供了一个可视的容器,并使其在界面上具有一致的外观和行为。以下是 QGroupBox 的一些常见特点和用途:
1)标题和边框:QGroupBox 具有一个可自定义的标题,以及可选的边框样式,用于在组合框周围绘制边框,并突出显示分组的控件。
2)布局容器:QGroupBox 可以用作布局的容器,可将其他控件放置在 QGroupBox 内,并使用布局管理器实现对这些控件的灵活排列和组织。
3)显示状态:QGroupBox 还可以通过设置 enabled 属性控制组内的所有控件的启用状态。当 QGroupBox 禁用时,组内的控件也将被禁用。
4)事件处理:QGroupBox 可以接收并处理鼠标事件、键盘事件和其他用户输入事件。可以为 QGroupBox 定义事件处理函数,以响应用户的交互动作。
④QScrollArea 是 Qt 中的一个控件类,用于创建一个具有滚动条的可滚动区域。它提供了一种在有限的显示空间内显示较多内容的方式,当内容超出可见范围时,可以通过滚动条来滚动并查看隐藏部分。 以下是 QScrollArea 的一些常见特点和用途:
1)可滚动内容:QScrollArea 允许将任意的 QWidget 或其子类作为内容放置在其中。当内容的大小超过 QScrollArea 的大小时,会自动显示水平和/或垂直滚动条,以便用户滚动查看隐藏的内容。
2)出视口窗口部件:QScrollArea 提供了一个视口窗口部件,该部件用于显示内容。使用者可以根据需要在视口窗口部件中放置其他控件,以实现自定义的布局。
3)自定义滚动条:QScrollArea 允许对滚动条进行自定义设置,包括滚动条的样式、行为和外观。使用者可根据需要调整滚动条的颜色、滑块大小等属性。
4)透明背景:QScrollArea 可以具有透明背景,使得内容与主窗口或其他控件背景融合,提供更好的视觉效果。
5)自动调整大小:QScrollArea 可以根据其内容的大小自动调整自身大小,以确保内容完全可见。
⑤QMdiArea 是 Qt 中的一个控件类,用于创建多文档界面(MDI)应用程序。MDI 应用程序是一种允许用户同时操作多个子文档的应用程序类型,每个子文档在父窗口中显示为一个区域。 以下是 QMdiArea 的一些常见特点和用途:
1)多文档显示:QMdiArea 允许您在父窗口中同时显示和管理多个子文档。每个子文档都被嵌入到 QMdiArea 的一个可视区域中,用户可以在这些区域之间切换和操作。
2)布局管理:QMdiArea 提供了不同的布局管理器,可以自动调整子文档的大小和位置,以适应窗口的大小变化。使用者可以选择水平、垂直或平铺等布局方式,使子文档呈现出不同的排列方式。
3)分割区域:QMdiArea 还允许您对父窗口进行分割,创建多个可视区域,并在每个区域中显示不同的子文档。这样,用户可以同时查看和操作多个子文档,提高工作效率。
4)子文档管理:QMdiArea 提供了一些方法和信号来管理和操作子文档。使用者可以通过QMdiArea 的接口创建、关闭、激活和切换子文档,同时也可以监听子文档的状态变化。
⑥QTabWidget 是 Qt 中的一个控件类,用于创建一个选项卡式的窗口部件,允许用户在不同的选项卡页之间进行切换。每个选项卡页上可以显示不同的内容或子控件。 以下是一些 QTabWidget 的常见特点和用途:
1)选项卡切换:QTabWidget 允许用户通过点击选项卡来切换不同的页面。每个选项卡页可以包含不同的子控件、布局和内容。
2)自定义选项卡:QTabWidget 允许您自定义选项卡的外观,包括标题文字、图标及其位置。使用者可以根据需要为选项卡设置不同的样式,以匹配应用程序的整体外观。
3)动态添加和移除:QTabWidget 提供了方便的方法来动态添加和移除选项卡页。这使得使用者可以根据需要动态调整选项卡的数量和内容。
4)信号和槽机制:QTabWidget 提供了一些信号和槽,以便使用者可以在选项卡切换时执行特定的操作。
⑦QToolBox 是 Qt 中的一个控件类,用于创建一个工具箱式的窗口部件,允许用户在不同的工具箱页面之间进行切换。每个工具箱页面上可以显示不同的内容或子控件,通常使用折叠部件(QGroupBox)作为页面的容器。 以下是一些 QToolBox 的常见特点和用途:
1)工具箱切换:QToolBox 允许用户通过点击工具箱页面的标题来切换不同的页面。可以将多个相关的子控件或信息组织在不同的工具箱页面中。
2)折叠部件容器:每个工具箱页面通常使用折叠部件(QGroupBox)作为容器,以便将多个相关的子控件进行分组和组织。通过展开或折叠折叠部件,用户可以显示或隐藏页面的内容。
3)动态添加和移除:QToolBox 提供了方便的方法来动态添加和移除工具箱页面。这使得用户可以根据需要动态调整工具箱的数量和内容。
4)自定义页面:QToolBox 允许您自定义页面的外观,包括标题、图标以及展开/折叠的样式。使用者可以根据需要为不同的页面设置不同的样式,以增强视觉效果和用户体验。
5)信号和槽机制:QToolBox 提供了一些信号和槽,以便用户可以在工具箱页面切换时执行特定的操作。
⑧QStackedWidget 是 Qt 中的一个控件类,用于创建一个堆叠式的窗口部件,允许用户在不同的堆叠页面之间进行切换。每个页面上可以显示不同的内容或子控件。 以下是一些 QStackedWidget 的常见特点和用途:
1)页面切换:QStackedWidget 允许用户通过切换当前显示的页面来浏览不同的内容。只有当前页面上的内容是可见的,其他页面是隐藏的。
2)堆叠部件容器:每个页面都可以包含一个或多个子控件,可以使用布局管理器来组织和布局这些子控件。QStackedWidget 作为一个容器,可以方便地在这些页面之间进行切换。
3)动态添加和移除:QStackedWidget 提供了方便的方法来动态添加和移除页面。这使得用户可以根据需要动态调整堆叠页面的数量和内容。
4)信号和槽机制:QStackedWidget 提供了一些信号和槽,以便使用者可以在页面切换时执行特定的操作。
⑨QWizard 是 Qt 中的一个控件类,用于创建一个向导式的窗口部件,允许用户通过多个步骤逐步完成一个任务或设置。 以下是一些 QWizard 的常见特点和用途:
1)向导式界面:QWizard 提供了一种按步骤向导用户完成任务的方式。用户可以逐步导航和填写必要的信息,以完成一个复杂的流程或设置过程。
2)多个页面:QWizard 包含多个页面,每个页面对应一个步骤。每个页面都可以包含不同的子控件、描述信息和逻辑。
3)页面导航:QWizard 提供了导航按钮和进度指示条,允许用户在页面之间前进或后退。用户可以根据需要在步骤之间切换,以便检查或修改之前的输入。
4)页面验证和跳转:QWizard 允许使用者为每个页面定义验证规则,并根据验证结果决定是否允许用户跳转到下一个页面。这使得可以在向导过程中对用户输入进行有效的验证和处理。
⑩QWizardPage 是 Qt 中的一个控件类,用于创建 QWizard 的页面或步骤。每个 QWizardPage 代表一个向导中的单个步骤。 以下是一些 QWizardPage 的常见特点和用途:
1)页面内容:QWizardPage 允许您在页面上放置不同的子控件,以便用户输入或显示相关信息。您可以使用布局管理器来组织和布局这些子控件。
2)页面验证:QWizardPage 提供了验证输入的机制,以确保用户提供的数据有效和符合要求。您可以在页面上定义验证规则,并在用户尝试导航到下一个步骤时进行验证。
3)页面导航:QWizardPage 具有与 QWizard 关联的导航功能。您可以在页面上定义下一个步骤和上一个步骤,以便用户按照正确的顺序导航和完成向导。
4)自定义页面:QWizardPage 允许您自定义页面的外观,包括标题、描述信息和布局。您可以根据需要为不同的页面设置不同的样式和布局设置。
5)页面特定逻辑:QWizardPage 允许您为每个页面定义特定的逻辑和操作。您可以在页面上执行必要的逻辑,如数据验证、更新其他部分等。
2. QT designer的布局
2.1 Widget Box
在QT Designer中,Widget Box是一个用于选择和添加小部件(Widgets)的工具箱。它提供了各种小部件,例如按钮、标签、文本框等,可以直接拖放到设计界面上。通过Widget Box,用户可以快速构建界面,而无需手动编写代码来创建和定位小部件。
2.2 对象查看器
在QT Designer中,对象查看器(Object Inspector)是一个窗口工具,用于查看和编辑当前界面中的小部件(Widgets)以及它们的属性和信号槽关联。通过对象查看器,用户可以方便地选择并查看某个小部件的属性,例如大小、位置、文本内容等。还可以在对象查看器中直接编辑这些属性,或者通过信号槽编辑器建立小部件之间的交互关系。对象查看器是QT Designer中设计和调整界面的重要工具之一。
2.3 属性编辑器
在QT Designer中,属性编辑器(Property Editor)是一个窗口工具,用于查看和编辑当前选择小部件(Widget)的属性。通过属性编辑器,用户可以方便地查看并修改小部件的各种属性,包括常见的大小、位置、文本内容等,以及更高级的属性如字体、颜色、样式等。通过属性编辑器,用户可以快速定制和调整小部件的外观和行为,而无需手动编写代码。属性编辑器是QT Designer中设计和调整界面的重要工具之一,使得界面设计更加直观和高效。
2.4 信号/槽编辑器
信号/槽编辑器(Signal/Slot Editor)是QT Designer中一个功能强大的工具,用于管理和设置小部件(Widget)之间的交互关系。通过信号/槽编辑器,用户可以轻松地定义和编辑小部件之间的信号和槽的连接,实现事件的触发和处理。
在信号/槽编辑器中,用户可以查看和编辑当前选择小部件的信号列表和槽列表。可以选择一个信号,并将其连接到一个槽上,使得当信号被触发时,相关的槽函数将被调用。用户可以在编辑器中直接选择现有的槽函数,或者自定义新的槽函数。
通过信号/槽编辑器,用户可以快速建立和管理小部件之间的交互关系,实现例如按钮点击、文本输入、数值变化等事件的响应和处理。这使得界面逻辑的设计和实现更加方便和灵活。
新手初次使用的时候,不用太过于多的去使用功能,先了解基础的属性以及各种的部件,多去了解了解基础使用,慢慢的再去深入使用。