Python 界面设计

Python 界面设计简介

Python可以通过Tkinter,wxPython, pyqt5, pyside2等工具库实现界面设计。

  • Tkinter

Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。

  • wxPython

基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。

  • PySide2、PyQt

基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。

缺点是 库比较大,发布出来的程序比较大。

PyQt支持三个版本:PyQt6PyQt5PyQt4。下面是它们之间的比较

  • PyQt6是最新版本,支持Python 3.6及以上版本,而PyQt5和PyQt4支持Python 2.7和Python 3.4及以上版本。
  • PyQt6的API与PyQt5比较相似,但与PyQt4不同。PyQt6和PyQt5支持许多相同的特性,如界面设计工具Qt Designer。
  • PyQt6比PyQt5和PyQt4更稳定、更快、更安全、更易于使用。它提供了更好的性能和更好的可扩展性。
  • PyQt6支持Python 3下的Type Hints,使代码更易于阅读和维护;PyQt5不支持,而PyQt4更不支持。
  • PyQt6与Qt的最新版本(当前为Qt 6.2 LTS)相对应,而PyQt5和PyQt4与旧版本相对应。因此,PyQt6包含更多的特性和改进。

PyQt是一个强大的Python GUI框架,被广泛应用于各种应用程序的开发中。具体的应用场景包括:

1. 桌面应用程序

  PyQt可以用于开发桌面应用程序,如音乐播放器、图像编辑器、文本编辑器、办公软件、游戏等。PyQt提供了丰富的GUI组件和强大的事件处理机制,可以实现各种复杂的交互功能。

2.数据可视化

  PyQt可以用于数据可视化,如绘图、图表、地图等。PyQt提供了多种图形绘制工具和丰富的颜色、字体、线条属性设置,可以实现各种复杂的数据可视化效果。

3. 网络应用程序

        PyQt可以用于开发网络应用程序,如Web浏览器、聊天软件、邮件客户端等。PyQt提供了强大的网络编程功能,支持TCP/IP、UDP、HTTP等协议,可以实现各种复杂的网络应用程序。

4. 科学计算

  PyQt可以用于科学计算,如利用PyQt和NumPy进行数据处理、模拟、分析等。PyQt提供了丰富的数据可视化工具和图形绘制工具,可以实现各种复杂的科学计算应用程序。

5. 自动化测试

  PyQt可以用于自动化测试,如利用PyQt和Selenium进行网页自动化测试、利用PyQt和Robot Framework进行GUI自动化测试等。PyQt提供了强大的GUI测试工具和事件处理机制,可以实现各种复杂的自动化测试需求。

Windows PyQt5安装及环境配置

1. 安装 PyQt5 工具包

首先需要安装 PyQt5 工具包,可以通过以下命令行安装:

pip install pyqt5

安装 Qt Designer、PyUIC 或 Pyrcc,使用以下命令行安装:

pip install pyqt5-tools

2. 将 Qt Designer 添加到 PyCharm

  打开 PyCharm,选择 “File->Settings”,在左侧面板中选择 “Tools->External Tools”,然后单击右侧面板中的 “+” 按钮。

在弹出的对话框中,在"Name"字段中输入 “Qt Designer”,在 “Description” 字段中输入 “PyQt5 Qt Designer”,在 “Program” 字段中输入 Qt Designer 的安装路径,其他的如下图所示:

然后,单击 “OK” 按钮保存设置。

3. 添加 PyUIC 工具

  PyUIC是一种Python GUI应用程序的用户界面代码生成器,可以将Qt Designer UI文件生成Python源代码。PyUIC生成的Python代码是基于Qt的PyQt和PySide库。它可以方便地与其他Python库集成,如numpy、matplotlib等。PyUIC生成的代码易于阅读和修改,可以方便地定制应用程序的用户界面。

  与添加 Qt Designer 类似,可以将 PyUIC 工具添加到 PyCharm 中。在 “External Tools” 对话框中单击 “+” 按钮,然后输入以下信息:

实参输入以下内容:

-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

意思将选中的 xxx.ui 文件转换为同名的 xxx.py文件

需要特别注意的是,执行的时候需要右键选中对应的 xxx.ui 文件,不然会出错的。

3. 添加 Pyrcc 工具

  Pyrcc是一个命令行实用程序,用于将Qt Designer中创建的.qrc文件转换为.py文件。 Pyrcc是Qt开发者的常见工具,因为.qrc文件与Python程序捆绑在一起,例如Qt资源文件,通过PyQt5或PySide2模块在Python脚本中的访问方式。

  与添加 Qt Designer 类似,可以将Pyrcc 工具添加到 PyCharm 中。在 “External Tools” 对话框中单击 “+” 按钮,然后输入以下信息:

保存设置后,可以在 PyCharm 中使用这些工具了。只需要右键单击任何 .ui、.qrc 或 .ui 文件,然后选择 “External Tools” 菜单,单击 “Qt Designer”、“PyUIC” 或 “Pyrcc” 即可。

Qt Designer界面设计

1、新建窗体

  启动Qt Designer后,可以通过文件(File) -> 新建(New) 或使用快捷键Ctrl + N来创建新的UI文件。在弹出的对话框中选择需要使用的类别(如“Dialog”、“Main Window”等),并选择需要使用的模板(如“Empty”, “Grid”, “Dock Widget”等)。然后点击创建(R)按钮即可创建一个新的UI文件。

  • Dialog:创建一个对话框窗口,此窗口通常用于显示相对较少的信息或与用户交互。
  • Window:创建一个主窗口窗口,此窗口通常用于显示大量信息和多种不同的功能。
  • Widget:创建一个普通的窗口控件,此窗口通常只是用来显示信息或数据。
  • DockWidget:创建一个浮动窗口控件,此窗口通常用于显示常用的工具或者选项,并且可以随时移动或关闭。
  • ToolBar:创建一个工具栏窗口控件,此窗口可以包含多个工具按钮,以方便用户进行操作和导航。

2、添加部件

在左侧的“Widget Box”中,可以找到各种类型的控件,比如按钮、文本框、标签、下拉菜单、复选框、单选按钮和进度条等。可以通过拖动控件到窗口中添加。

3、编辑属性

在窗口中添加控件后,可以通过“Property Editor”编辑控件的属性。例如,可以更改控件的大小、位置、文本内容、颜色、字体等。

4、布局管理

在添加控件时,需要考虑控件的位置和大小。布局管理器可以帮助我们在窗口内按照一定的方式排列控件,使窗口更加美观。Qt Designer提供了以下几种类型的布局管理器:

QVBoxLayout:垂直布局

QHBoxLayout:水平布局

QGridLayout:网格布局

QFormLayout:表单布局

QStackedLayout:层叠布局

5、保存文件

最后将窗口保存为.ui文件,可以在“File”菜单中选择“Save”或使用快捷键Ctrl+S。.ui文件是一个XML文件,包含了窗口和控件的布局、属性、事件以及信号槽等信息。

将UI文件转化为Python代码并显示

1、使用uic将UI文件转换为Python代码

在 PyCharm 中只需要右键单击.ui文件,然后选择 “External Tools” 菜单,单击PyUIC即可。

转换后的python代码

2、创建对话框实例并显示UI

 

首先创建一个MainDialog类,继承自QDialog,并在构造函数中实例化对话框类。然后创建一个应用程序(QApplication),实例化MainDialog类,调用show()方法来显示对话框,并启动应用程序的事件循环

app.exec_()的作用是运行主循环,必须调用此函数才能开始事件处理,调用该方法进入程序的主循环直到调用exit()结束。主事件循环从窗口系统接收事件,并将其分派给应用程序小部件。如果没有该方法,那么在运行的时候还没有进入程序的主循环就直接结束了,所以运行的时候窗口会闪退。

app.exec_()在退出时会返回状态代码

不用sys.exit(app.exec_()),只使用app.exec_(),程序也可以正常运行,但是关闭窗口后进程却不会退出。

sys.exit(n)的作用是退出应用程序并返回n到父进程。

信号和槽

1、信号(signal)

其实就是事件(按钮点击 、内容发生改变 、窗口的关闭事件) 或者是 状态 (check选中了, togglebutton 切换。)

当程序触发了某种状态或者发生了某种事件(比如:按钮被点击了, 内容改变等等),那么即可发射出来一个信号。

2、槽( slot)

若想捕获这个信号,然后执行相应的逻辑代码,那么就需要使用到槽 , 槽实际上是一个函数, 当信号发射出来后,会执行与之绑定的槽函数

3、将信号与槽链接

为了能够实现,当点击某个按钮时执行某个逻辑,需要把具体的信号和具体的槽函数绑定到一起。

实例介绍:

1、打开信号/槽编辑界面

2、鼠标左键按住控件并往空白处拖动

3、选择事件

4、添加槽

5、新建槽

6、信号连接到槽

7、保存界面,更新python代码

更新后的代码:

8、定义槽函数

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值