由于一直用的是Python2.7,所以选用了PyQt4,而不是PyQt5。
一、环境搭建
本次搭架的软件环境是win10 x64+Python 2.7.13 32bit + PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32 + eric6-16.12
1. win10 x64, Python2.7.13 32bit安装(省略)
2. PyQt4-4.11.4-gpl安装
a. 点击安装包,一路next,注意安装路径需要选择Python的路径,如下图所示
b. 安装程序退出后,如果在Python路径下的Lib\site-packages下看到PyQt4的文件夹,说明安装成功,如下图所示
![](https://img.haomeiwen.com/i5555005/38d4b098bb5dbeba.png)
3. eric6-16.12安装
![](https://img.haomeiwen.com/i5555005/c4c6292fba670a57.png)
a. 将解压缩后的文件夹拷贝到C盘根目录下,点击install.py进行安装
b. 安装脚本会提醒安装完成
![](https://img.haomeiwen.com/i5555005/4c90258ed404fc7a.png)
c. 双击eric6.pyc会弹出eric的IDE
![](https://img.haomeiwen.com/i5555005/7d355553b8e4f803.png)
![](https://img.haomeiwen.com/i5555005/6cef6e1b822438ea.png)
![](https://img.haomeiwen.com/i5555005/271bc5f768fa42ac.png)
二、Hello World
Hello World参考罗兵の水库的博客,他是用PyQt5,本文用的是PyQt4,大同小易,部分相同的图片来源于罗兵,侵删,对PyQt5感兴趣的同学可以点击链接进去看看。
1. 在eric6中新建项目
![](https://img.haomeiwen.com/i5555005/19de33954fbfa442.png)
点击OK后,会生成__init__.py文件
![](https://img.haomeiwen.com/i5555005/19e89a6654bd9adf.png)
新建对话框窗体
![](https://img.haomeiwen.com/i5555005/78eb4cf0b1969e74.png)
![](https://img.haomeiwen.com/i5555005/d3e9a60535a112ec.png)
![](https://img.haomeiwen.com/i5555005/7bc5fb266b9ddc89.png)
2. 进入PyQt4 Designer编辑图形界面(自动进入),并保存
![](https://img.haomeiwen.com/i5555005/b3bb8fb7847b3cd1.png)
![](https://img.haomeiwen.com/i5555005/3b8bd7272c2bc3c5.png)
![](https://img.haomeiwen.com/i5555005/1ffd6d6cbb8d2ea8.png)
给退出按钮添加信号/槽
![](https://img.haomeiwen.com/i5555005/9fdb6748ae7e5b1a.png)
![](https://img.haomeiwen.com/i5555005/6a221f6d35b9f6ff.png)
保存,然后关闭PyQt Designer
![](https://img.haomeiwen.com/i5555005/5d1bc675d81cdace.png)
3. 回到eric6,将刚才的界面文件编译
![](https://img.haomeiwen.com/i5555005/c12dc2ef6c32a36e.png)
回到eric6后,发现窗体下多了个hello.ui文件,此文件本质是一个xml格式文件,不能被运行,需要右击它,选择编译窗体
编译成功之后,发现源文件下多出了Ui_hello.py文件,这个文件就可以运行了
![](https://img.haomeiwen.com/i5555005/a6fc5b6c5071e271.png)
试着运行它,如图:
![](https://img.haomeiwen.com/i5555005/ecf7b07a5089626b.png)
界面出来了,不过你会发现,只有退出按钮起作用,而确定按钮没反应。那是因为我们还没给确定按钮添加逻辑代码。
![](https://img.haomeiwen.com/i5555005/32a36031415ae81d.png)
到窗体下右击hello.ui文件,选择 生成对话框代码
![](https://img.haomeiwen.com/i5555005/74994626027372e8.png)
![](https://img.haomeiwen.com/i5555005/f6ff3d9e8b0d35d2.png)
此处勾选pushButton下的on_pushButton_ok_clicked()
![](https://img.haomeiwen.com/i5555005/f127b2e851f246b4.png)
回到源代码下,发现又多出了一个hello.py文件
![](https://img.haomeiwen.com/i5555005/a240e582dc2734e3.png)
运行,发现错误。
![](https://img.haomeiwen.com/i5555005/9182f5db90c79d8b.png)
这个错误应该是eric 6的一个bug!!!,去掉Ui前面的点号,再运行,就没有报错了,但是这时候还是看不到窗体。
![](https://img.haomeiwen.com/i5555005/98b149c1315c39f1.png)
少了几行代码,eric6并没有自动添加。那就自己动手吧,在hello.py的最下面添加这几行:
![](https://img.haomeiwen.com/i5555005/10bcf9dd0963dfa6.png)
if __name__ == '__main__':
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
dlg = Hello()
dlg.show()
sys.exit(app.exec_())
窗体终于又出来了,但是点击确定按钮的时候又报错了。原因很简单,我们还没有覆写给确定按钮的逻辑代码。
![](https://img.haomeiwen.com/i5555005/de151521e3a0fd8b.png)
把原来的代码删除,修改为一句。
@pyqtSignature("")
def on_pushButton_ok_clicked(self):
self.label_hello.setText('Hello world!')
保存一下,然后运行。OK,大功告成!
![](https://img.haomeiwen.com/i5555005/4fb9a7c7a68cf528.png)
![](https://img.haomeiwen.com/i5555005/0cfc522ccb642932.png)
网友评论