Qt Designer 和 Python:更快地构建您的 GUI 应用程序

Designer旨在为创建 PyQt5 应用程序提供一个轻量级但功能强大的解决方案。

它使得通过拖放创建GUI 应用程序成为可能。它基于使用 Qt Designer 的Qt 框架,Qt Designer 是一个可视化布局和表单编辑器。

对于那些熟悉 Python GUI 编程的人来说,您可能已经使用过tkinter GUI 库。

PyQt 应用程序可以用多种方式编写:纯 Python、QML(及其工具)或 Qt Designer 的形式。

c08e70a50f7f661e44d08034eadc9b72.jpeg

PyQt Designer 的一些好处:

  • 生成的代码完全是 Pythonic 的。
  • 它利用了最新的 Python 特性,例如装饰器、生成器和 Lambda。
  • 它使用 Python 3。
  • 它使用 Qt 样式和主题来最大程度地与您的应用程序设计保持一致。
  • 它可以生成兼容 Qt4 和 Qt5 的代码。

它具有一个简单而强大的表单编辑器,允许非程序员有效地创建复杂的布局。

您可以将 PyQt 与任何 IDE 一起使用,包括PyCharm或仅来自 vim。

如果您是 PyQt 的新手,我推荐这门课程:
使用 Python PyQt5 创建桌面应用程序

什么是Qt Designer

Qt Designer 是一个图形用户界面 (GUI) 布局和表单编辑器,它是 Qt Framework 的一部分。

Qt Designer 是设计用户界面的强大工具。它的主要目的是创建可以在用C++编写的应用程序中编译和使用的小部件和 GUI 布局规范。然而,Qt Designer 也完全能够为 Python 应用程序生成代码

什么是 PyQt?

PyQt 是一组用于 Qt 跨平台 GUI 框架的 Python 绑定。它为 Python 应用程序提供了一种快速创建与使用 Qt Designer 构建的用户界面非常相似的用户界面的方法。

PyQt 还包括用于部署用 Python 编写的应用程序的工具。然而,它并没有试图隐藏它生成 Python 代码或者它不如本地编写的 Python 应用程序那么快的事实。

虽然 PyQt 应用程序通常比它们的替代应用程序更快,但它们无法与整个应用程序都用 C++ 编写的本机应用程序相提并论。

Qt Designer还是 Python?

GUI 构建器生成的代码与手动PyQt 代码之间存在许多差异,这是 Qt 的优势之一:您可以选择最适合每种情况的代码。

当然,在某些情况下,现有的 Qt Designer UI 可以轻松转换为 Python 代码。但也有一些情况直接用 Python 编写是有意义的。

你什么时候应该使用什么?

大多数 GUI 代码应该使用 GUI 生成器创建。这是因为 GUI 构建器提供了一种方便、可视化的方式来保持所有元素对齐,并在构建时查看 GUI 的整体结构。

5706097f87aecf81147a10a5064b778c.jpeg

GUI 构建器还为您管理布局,因此您无需担心在实际将每个元素绘制到屏幕上时尝试计算出每个元素与所有其他元素相比应该有多大。

加载ui文件

.ui 文件是 XML 文件,其中包含用户界面定义以及界面内小部件的布局。

为了在您的代码中直接使用 Qt Designer .ui 文件,您需要使用 Python 从 .ui 文件加载数据。您可以使用简单的 Python 脚本或更复杂的程序来完成此操作。

PyQt-Python 使使用 Python 创建 GUI 应用程序变得容易。但是,如果您想在代码中直接使用 Qt Designer .ui 文件,则需要使用 Python 从 .ui 文件加载数据。您可以使用简单的 Python 脚本或更复杂的程序来完成此操作。

from PyQt5 import QtWidgets, uic
import sys

class Ui(QtWidgets.QMainWindow):
    def __init__(self):
        super(Ui, self).__init__()
        uic.loadUi('basic.ui', self)
        self.show()

app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()

以下简单的 Python 脚本演示了加载 .ui 文件并显示设计器中其中一个小部件的内容。将脚本另存为 userinterface.py。

猜你喜欢

转载自blog.csdn.net/mopanchun/article/details/127973221
今日推荐