PySide学习笔记
PySide安装
Python自带了GUI模块Tkinter,只是界面风格有些老旧。
Python的Qt有PyQt和PySide吧。PyQt 是商业及 GPL 的版权, 而 PySide 是 LGPL。大意也就是PyQt开发商业软件是要购买授权的,而PySide则不需要。二者代码基本一致,修改下import 基本剩余的代码皆可通用。所以毫不犹豫的选择了PySide。
QtCore是非界面功能模块,主要对文件目录,数据类型,输入输出流,url以及线程等提供支持。
QtGui提供了对常见界面元素的支持,例如,对话框,窗口,状态栏,工具栏等等。
add-apt-repository ppa:pysidesudo apt-get updatesudo apt-get install python-pyside
测试是否安装成功
pythonimport PySidedir(PySide)PySide.__version__PySide.QtCore.__version__
PySide初试
# -*- coding: utf-8 -*- # Import PySide classesimport sysfrom PySide.QtCore import *from PySide.QtGui import * # Create a Qt application app = QApplication(sys.argv)# Create a Label and show itlabel = QLabel("Hello World")label.show()# Enter Qt application main loopapp.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应用