需求:用raspberry做主机,linux操作系统。连接显示器,展示宣传内容,定时刷新。
使用的设备是raspberry pi2 B+ ,python2.7,使用pyqt4做图形化界面。最初本来想用自带的tk,但是不能嵌入web浏览器。如果调用操作系统的浏览器,如果将来要放大、屏蔽按钮等等扩展就不方便了。
首先安装PyQt4开发包
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-dev
$ sudo apt-get install qt4-dev-tools
下载并安装SIP
$ wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.17/sip-4.17.tar.gz
$ tar vxf sip-4.17.tar.gz
$ cd sip-4.17
$ python configure.py
$ make all
$ sudo make install
下载安装PyQt4
$ wget https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.4/PyQt-x11-gpl-4.11.4.tar.gz
$ tar vxf PyQt-x11-gpl-4.11.4.tar.gz
$ cd PyQt-x11-gpl-4.11.4
$ python configure.py
$ make all # 耗时real 113m20.864s
$ sudo make install
python代码
#!/bin/env python # -*- coding:utf-8 -*- # ------------------------------- # Date: 2016-02-17 # Author: simonzhang # Web: www.simonzhang.net # Email: simon-zzm@163.com # ------------------------------- import sys from PyQt4.QtWebKit import QWebView from PyQt4.QtGui import QApplication, QDesktopWidget, QMainWindow from PyQt4.QtCore import QUrl # 创建应用 app = QApplication(sys.argv) # 获取桌面分辨率 getSize = QDesktopWidget().availableGeometry() w = getSize.width() h = getSize.height() # 创建并连接web服务器 browser = QWebView() browser.load(QUrl(sys.argv[1])) browser.show() # 重新设置浏览器大小 browser.resize(w, h) # 启动应用 app.exec_()
测试:再Linux桌面下在控制台输入
python testPyQt.py http://www.simonzhang.net/test.html
显示正常,需要展示的内容做html页面就可以了。自动刷新部分也写在页面里,一分钟刷新一次。将
放在页面head里面。
随桌面自动带起来。编辑桌面启动的账户下配置.profile
if [ $DISPLAY == ":0" ];then python Desktop/testPyQt.py http://www.simonzhang.net/test.html fi
官方pyqt5不支持python2了,只能用python3,但是本人一直在用python2。所以也编译了一下PyQt5做测试。
$ sudo apt-get install qt5-default
两个包地址如下,安装编译方法和上面相同
http://downloads.sourceforge.net/project/pyqt/sip/sip-4.17/sip-4.17.tar.gz
https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.5.1/PyQt-gpl-5.5.1.tar.gz
编译耗时 120m40.725s
简单测试正常。估计细节还是会有问题。如果要用pyqt5还是直接用python3比较好。此处只为测试。
发表评论