PyQt5 的 designer.exe 使用布局详解

采用designer.exe原因

  Python使用PyQt5界面开发为啥不使用py文件创建而是采用designer.exe原因?
  使用PyQt5进行界面开发时,通常有两种主要的方式来创建用户界面:直接编写Python代码或使用Qt Designer(designer.exe)生成.ui文件。选择使用Qt Designer的原因如下:
  1.可视化设计:Qt Designer提供了一个直观的图形界面,开发者可以通过拖放控件来设计用户界面,而不需要手动编写大量的布局和组件创建代码。这对于快速原型开发非常有帮助。
  2.提高效率:使用Qt Designer可以节省时间,特别是在设计较复杂的界面时,因为开发者不需要关注很多细节,能够更专注于整体布局和设计风格。
  3.分离逻辑与界面:通过将界面设计和业务逻辑分开,开发者可以在不影响程序逻辑的情况下修改界面。这种分离有助于团队协作开发:设计师可以专注于UI,程序员可以专注于业务逻辑。
  4.支持多种格式:Qt Designer允许你导出.ui文件,这些文件可以方便地通过PyQt提供的工具(如pyuic5命令)转换为Python代码。这种方式使得界面设计和实现更加灵活。
  5.调试可视化:在Qt Designer中,设计的界面可以即时预览,帮助开发者在设计阶段发现和纠正问题,而不需要运行代码来查看效果。
  虽然手动编写Python代码来创建用户界面提供了更多的灵活性,但Qt Designer结合后续生成的Python代码通常在开发过程中更加高效,特别对于那些不太熟悉PythonQt的开发者来说。
  在使用 PyQt5 进行 GUI 开发时,designer.exe是一个非常强大的可视化界面设计工具。它可以帮助我们快速创建美观且功能丰富的用户界面,而无需手动编写大量的界面布局代码。本文将详细介绍designer.exe的使用布局,并通过图片、代码和表格来进行展示。

一、打开 designer.exe

  通常,在安装了 PyQt5 后,可以在安装路径下找到designer.exe。运行该程序,会出现一个可视化的界面设计窗口。designer.exe的安装路径具体可以查看PyQt5安装、designer.exe的位置

二、界面布局介绍

在这里插入图片描述

1. 菜单栏和工具栏

  菜单栏:提供了各种操作选项,如文件操作、编辑、视图、窗体等。
  工具栏:包含一些常用的操作按钮,如新建窗体、打开文件、保存文件等。
  designer.exe生成设计界面的菜单栏和工具栏的使用具体可以查看窗体MainWindow的属性设置2

2. 组件面板

  位于窗口的左侧,这里列出了各种可用于界面设计的组件,如按钮、标签、文本框、列表框等。通过拖拽这些组件到中间的窗体设计区域,可以快速构建界面。

3. 窗体设计区域

  这是界面设计的主要区域,在这里可以通过拖拽组件、调整大小和位置来布局界面。

4. 属性编辑器

  位于窗口的右侧,当选中一个组件时,属性编辑器会显示该组件的各种属性,如大小、位置、文本内容、颜色等。可以通过修改这些属性来定制组件的外观和行为。

5. 信号 / 槽编辑器

  在窗体设计区域右键点击窗体,选择 “编辑信号 / 槽” 可以打开信号 / 槽编辑器。在这里可以为组件的信号(如按钮的点击事件)连接到槽函数(处理事件的函数)。

三、示例代码及图片展示

  以下是一个简单的使用designer.exe设计的界面示例,包含一个按钮和一个标签。当点击按钮时,标签的文本会发生变化。
  首先,使用designer.exe创建一个新的窗体,拖拽一个按钮和一个标签到窗体设计区域。
在属性编辑器中,修改按钮的文本为 “点击我”,修改标签的文本为 “初始文本”。
  打开信号 / 槽编辑器,将按钮的 “clicked” 信号连接到一个自定义的槽函数。
  下面是生成的.ui文件转换为 Python 代码后的示例:(ui文件转换成py文件具体可以查看designer使用生成程序简单示例

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import uic

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi('my_ui.ui', self)
        self.pushButton.clicked.connect(self.change_label_text)

    def change_label_text(self):
        self.label.setText("文本已改变")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

猜你喜欢

转载自blog.csdn.net/zhang1379/article/details/142774825