转载请注明出自0ssifrage.com
简单介绍一下 Eric4 + PyQt库 编写Python程序
上学期学的编程语言是Python,大作业是一个中文分词的teamwork
本来开始打算用自带的Tkinter的GUI库来写的,但是写着写着就发现Tkinter略丑了点。。
(不过最后看到有些大神用Tkinter写的程序UI还不错)
于是就找到了个名为PyQt的Python的GUI库,效果还不错
然后配合名为Eric的IDE,编写程序还是比较方便的
下面就简单介绍下 Eric4 + PyQt 编写简单程序的流程
首先下载安装对应版本的 PyQt4 和 Eric4,这个就不用多说了。。
打开Eric4,
Project -> New 新建一个工程
然后在左侧的Forms选项卡下点击右键 -> New form 创建窗口
选择Dialog 然后保存为 DlgHelloWorld.ui
然后系统就自动打开 QtDesigner 的窗口设计器
从左边的Widget Box里向窗口拖入 2个 Push Button 和 一个Label
然后在右边的属性编辑器将这3个对象分别命名为 BtnHello BtnExit lblHello
各自的text属性设置成 “Hello” “Exit” “Hello”
于是大概就像下图

之后就是处理事件
PyQt 有信号(signal)和 槽(slot)2个概念
slot是对应signal的处理
退出程序有预定义的slot 于是就不用另外加代码
直接在右侧的 “信号/槽编辑器” 下点 “+”
发送者选 btnExit 信号选 clicked() 接受者选 Dialog 槽选 close()
保存一下 点 Ctrl+r 预览窗口 点击Exit按钮 就会发现窗口关闭了
但是点Hello按钮还是什么都没发生,于是就需要添加额外的代码
保存后退出QtDesigner
然后就发现Eric 左侧Froms选项卡下面多了个 DlgHelloWorld.ui
对其点右键 -> Compile form 就会自动生成 Ui_DlgHelloWorld.py 文件
Ui_DlgHelloWorld.py是可以直接运行的,直接打开它可以看到效果
然后就需要添加额外的代码处理hello按钮被点击的事件
还是在左侧 Forms 选项卡下的 DlgHelloWorld.ui 点右键 -> Generate Dialog Code
在弹出的对话框选New 创建一个名为 DlgHelloWorld 的类
并在下面勾选上 on_btnHello_clicked

然后点击OK
发现多了个 DlgHelloWorld.py 文件
其中有段代码为:
1
2
3
4
5
6
7
|
@pyqtSignature ("") def on_btnHello_clicked( self ): """ Slot
documentation goes here. """ #
TODO: not implemented yet raise NotImplementedError |
将其改为
1
2
3
|
@pyqtSignature ("") def on_btnHello_clicked( self ): self .lblHello.setText( "World!" ) |
以添加Hello按钮的点击处理函数
最后新建一个主程序 HelloWorld.py
并添加以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import sys from PyQt4
import QtCore,
QtGui import DlgHelloWorld def main(args): app = QtGui.QApplication(sys.argv) MainWin = QtGui.QMainWindow() Mwin = DlgHelloWorld.DlgHelloWorld() Mwin.show() sys.exit(app.exec_()) if __name__ = = "__main__" : main(sys.argv) |
来调用 DlgHelloWorld
直接双击 HelloWorld.py 就可以运行程序了

点击Hello按钮,就会发现label的文本变为 “World!” 了~
于是第一个用Eric4 + PyQt 写的简单程序就完成了~ 。。
至于写实际复杂程序面对的问题 还是请查阅PyQt的文档(PyQt的文档还是很不错的~) 或者多Google一下吧~