本文经过原作者同一并委托转载 地址:原文地址 PyQt是Python下的另一套图形界面接口库,顾名思义就是在Python中调用Qt图形库和组件。使用PyQt的优点在于可以使用Qt成熟的IDE(如Qt Creator)进行图形界面设计,并自动生成可执行的Python代码。 1.1.PyQt的安装和使用 PyQt可以通过apt-get命令安装,其对应Python 2.x 和Python 3.x的包名称不同。 安装Python 2.x下的PyQt:
安装Python 3.x下的PyQt:
获取PyQt的文档和范例程序(非必须):
获取到的范例程序保存在/usr/share/doc/python-qt4-doc/examples目录下找到。 2D绘图 对话框演示 FTP客户端(网络编程)演示 OpenGL 3D绘图 下面我们通过一段代码演示PyQt的使用。新建Python文件,命名为hello_pyqt.py,代码内容如下:
在本例中,所有的PyQt控件都封装在HelloPyQt类中。首先添加了一个QTextEdit 控件textHello和QPushButton控件btnPress,然后通过self.btnPress.clicked.connect()语句将btnPress按钮的clicked信号连接至btnPress_Clicked()函数。 如此当按钮被按下时,会触发clicked事件,进而调用btnPress_Clicked()函数。该函数的功能就是改变textHello中的文本。 在Python3下运行程序:
PyQt程序运行效果 从上面的例子可以看出手动编写代码调用PyQt依然十分不便,好在PyQt还为我们准备了Qt GUI界面的转换工具,可以将Qt Creator生成的.ui文件直接转换成Python代码。比如需要对test.ui进行转换,其命令如下: $ pyuic4 test.ui -x -o test.py 其中-x参数相当于--execute,在代码中增加了一些测试语句,这样生成的Python文件就可以直接执行了。之后我们就可以在生成的代码基础上实现自己的功能。 1.2.例:通过PyQt设计CPU温度监控软件 这里我们将通过PyQt设计一个监控树莓派内核温度的小软件。首先打开QtCreator,新建一个Qt GUI应用程序工程(如何在树莓派2本地安装运行Qt Creator,请参见:编程篇(一)在树莓派2上本地开发Qt GUI程序)。设计如下图所示的窗口界面: 在Qt Creator中设计GUI 通过pyuic命令将GUI文件转换成Python文件,然后在此基础上进行修改,代码如下:
代码中新建了一个QTimer定时器控件,用于定时查询CPU当前的温度并更新显示。self.timerTemp.timeout.connect()语句将定时器的超时信号链接至timerTemp_TimeOut()函数。self.timerTemp.start(2000)设置定时器超时时间为200ms,即每2秒执行一次timerTemp_TimeOut()函数。 LCD控件用于显示CPU当前的温度。在显示界面和运行定时器之前,可以通过手动调用self.timerTemp_TimeOut()函数读取CPU温度来初始化LCD控件内容。 CPU的温度通过读取 /sys/class/thermal/thermal_zone0/temp文件内容获得。这里采用os.popen()方法在Linux Shell中通过cat命令读取文件,并将返回的字符串信息转换为数字显示在LCD控件中。 窗口下面的滚动条用于设置温度报警门限,如果CPU温度接近门限值,则会改变温度显示的颜色。如果超过门限值则弹出对话框报警。 温度监控程序运行效果 这里我们还可以使用一个小程序将CPU占用率提高到100%来提升CPU温度,只要编写一段死循环的运算代码即可(一个Python进程只能在单个内核上运行,对于树莓派2,需要同时启动4个进程才能跑满全部内核)。代码内容如下:
多进程后台执行:
提高CPU占用率 |
|