当前位置: 首页 > 工具软件 > pyrasite-gui > 使用案例 >

Python的GUI框架PySide

司徒高丽
2023-12-01

PySide学习笔记


PySide安装


Python自带了GUI模块Tkinter,只是界面风格有些老旧。
Python的Qt有PyQt和PySide吧。PyQt 是商业及 GPL 的版权, 而 PySide 是 LGPL。大意也就是PyQt开发商业软件是要购买授权的,而PySide则不需要。二者代码基本一致,修改下import 基本剩余的代码皆可通用。所以毫不犹豫的选择了PySide。

QtCore是非界面功能模块,主要对文件目录,数据类型,输入输出流,url以及线程等提供支持。
QtGui提供了对常见界面元素的支持,例如,对话框,窗口,状态栏,工具栏等等。

add-apt-repository ppa:pyside
sudo apt-get update
sudo apt-get install python-pyside

测试是否安装成功


python
import PySide
dir(PySide)
PySide.__version__
PySide.QtCore.__version__

PySide初试


# -*- coding: utf-8 -*-  
# Import PySide classes
import sysfrom PySide.QtCore import *
from PySide.QtGui import *    
# Create a Qt application 
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
sys.exit()

这样运行就可以看到一个最简单的窗口了。Hello World .

编写PySide的桌面应用,首先要导入QtCore和QtGui,因为这些类包含了应用中主要功能。
QtGui包含界面元素,处理控件的函数,QtCore包含处理信号和槽的函数等等。
在导入模块完成之后,需要创建QApplication的对象,这就是Qt主程序了。就像Qt可以从命令行接受参数一样,你可以传递任何参数给QApplication对象。该对象需要从命令行中接受参数,因此需要想QApplication中传递sys.argv。然后,为了让Hello world顺利出现,需要给一个QLabel对象。最后调用show方法显示label。

app.exec_()将会进入Qt的主循环中不停的轮询侦听信号,接受到信号后,就寻找与处理信号的句柄即槽函数。

sys.exit() 就是退出。

Tips :

最后两句一般写成: sys.exit(app.exec_())

这里,之所以写成app.exec_() 而不是app.exec() 是因为exec是python中的关键字,所以Qt使用exec_避开

label显示html

  在label里插入一段html标签来显示富文本。让我们把上面这段代码中做个修改。

label = QLabel("<font color=red size=40>Hello World</font>")

  你将会看到 “Hello World” 字体变大而且是红色的了。当然,你也可以尝试修改成其他颜色或者其他尺寸,甚至让它闪一下。另外,你也可以用其他控件替换掉QLabel,比如QPushButton等等。


参考文献


PySide学习笔记

Python的GUI框架PySide的安装配置教程

pyside写ui界面入门示例

PySide教程:第一个PySide应用

 类似资料: