目录
本章学习内容:
- 显示一个问候语
- 使用 Radio Button 组件
- Radio Button 分组
- 显示 checkbox 表单选项
- 显示两组 checkbox 组件
一、介绍
接下来,我们将学习一下如何使用 Qt 工具箱来创建一个 GUI 应用程序。Qt 工具箱,简称Qt,是由 Trolltech 开发的一个跨平台的应用UI框架,用于开发 GUI 应用程序。它可以运行在多个平台上,包括:Windows、maxOS、Linux和其他类UNIX平台。它有时通常也会被称为一个组件库,因为它指供了设计GUI所需要的各种组件,如:buttons、labels、textboxes、push buttons 和 list boxes。它包括跨平台的类的集合,集成了开发工具和一个跨平台的IDE。为了创建一个实时的应用程序,我们要使用 Python 绑定的 Qt 工具箱,即 PyQt。
二、PyQt
PyQt 是一个 Python 绑定的跨平台的框架,结合了所有 Qt 和 Python 的特性,所以称为 PyQt,你可以使用 Python 代码调用 Qt 库,也就是说可以使用 Python 语言编写 Qt GUI 应用程序。换句话说,PyQt 允许你通过 Python 代码访问 Qt 提供的所有功能。PyQt 依赖于 Qt 库来运行程序,因此当你安装 PyQt 时, 也会同时自动在你的机器上安装好 Qt 环境。
一个GUI应用程序可能包括一个主窗口和一些对话框,或者仅仅只有一个对话框。一个小的 GUI 应用程序通常包括至少一个对话框。一个对话框应用又包含了多个按钮组件。对话框中不能使用菜单栏、工具栏、状态栏,或者一个Central中心组件,然而一个主窗口应用程序可以包含以上所有组件。
对话框有以下两种类型:
- Modal(模态):是一个能够阻止用户与应用程序其他部分交互的对话框。用户只能在这种对话框中进行操作。直到该对话框关闭之前其他部分不可操作。
- Modeless(非模态):这种对话框与模态对话框相反。当一个非模态对话框打开时,用户可以自由的操作该对话框和应用程序中除此对话框以外的内容。
三、创建一个 GUI 应用程序的方法
有以下两种方法编写 GUI 应用程序:
- 从草图开始,使用一个简单的文本编辑器 text editor
- 使用 Qt Designer,一个可视化的设计工具,可以让你通过拖拽的方法快速创建一个用户界面
你将会在 PyQt 中使用 Qt Designer 来开发一个 GUI 应用程序,因为它是一个快速且简单的设计用户界面的方法,不需要编写太多的代码。因此,可以通过双击桌面上 Qt Designer 图标打开Qt Designer。
打开后,Qt Designer 将会询问你选择一个模板来开始你的应用,如下图所示:
Qt Designer 提供了一些针对不同种类应用的模板。你可以任意选择一个模板,然后点击 Create 按钮。
针对新建的应用程序,Qt Designer 提供以下预定义模板:
- Dialog with Buttons Bottom:这个模板会创建一个窗体,并在窗体的右下角显示一个 OK 按钮和一个 Cancel 按钮。
- Dialog with Buttons Right:这个模板会创建一个窗体,并在窗体的右上角显示一个 OK 按钮和一个 Cancel 按钮。
- Dialog without Buttons:这个模板会创建一个空窗体,你可以在窗体上放置组件。它的父类是 QDialog。
- Main Window:这个模板提供了一个主应用程序窗体,包含一个菜单栏一个工具栏,如果不需要还可以移除。
- Widget:这个模板会创建一个继承自 QWidget 类而不是 QDialog 类的窗体。
每一个 GUI 应用程序都有一个顶层的组件,其他组件都是该顶层组件的子组件。这个顶层的组件可以是 QDialog、QWidget 或者是 QMainWindow,可以根据需要选择相应的模板。如果你想要创建一个基于对话框模板的应用程序,那么对话框的顶层组件或它的父组件需要继承 QDialog 类。同理,如果要创建一个基于主窗体模板的应用,那么它的顶层组件就是 QMainWindow 类,如果要创建一个基于 Widget 的组件,你需要继承自 QWidget 类。正如上面提到的,用户界面中使用到的其余组件都是相关组件的子类。
Qt Designer 在上方显示了一个菜单栏和一个工具栏。在左侧工具箱中分组显示了开发应用程序所使用的各种组件。你需要做的就是将组件拖拽到窗体中,并放置到你想到放置的任何地方。你还可以布局组件,设置它们的样式,提供组件的初始属性,连接它们的信号和槽。