博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 eric6 与 PyQt5 实现python的极速GUI编程(系列04)---- PyQt5自带教程:地址簿(address book)...
阅读量:6326 次
发布时间:2019-06-22

本文共 1890 字,大约阅读时间需要 6 分钟。

【引子】

在PyQt5自带教程中,地址簿(address book)程序没有完全实现界面与业务逻辑分离。

本文我打算用eric6+PyQt5对其进行改写,以实现界面与逻辑完全分离。

 

【概览】

1、界面:

2、功能简介:
程序有三种操作模式:浏览模式、添加模式、编辑模式。 其实现的功能都显式的体现在各个按钮上

3、主要步骤:
1)、在eric6中新建项目,新建窗体,取名为 addressbook.ui 文件
2)、(自动打开)进入PyQt5 Desinger,编辑图形界面,保存
3)、回到eric 6,对上一步得到的界面文件 addressbook.ui 文件右击,编译窗体,得到 Ui_addressbook.py 文件
4)、然后再对 addressbook.ui 文件右击,生成对话框代码,得到 addressbook.py 文件。(在addressbook.py中添加自己的程序逻辑)
5)、py2exe打包成exe文件(此步略)

4、涉及的知识点:
import sys, pickle
from PyQt5.QtCore import pyqtSlot, QFile, QIODevice, Qt, QTextStream
from PyQt5.QtWidgets import QWidget, QDialog, QLabel, QLineEdit, QPushButton, QHBoxLayout,  QMessageBox,QFileDialog,  QApplication
【正文】
1、一般的步骤省略不表,接上面主要步骤第二步:

在Qt设计师中,将行编辑框(lineEdit)、文本编辑框(textEdit)、及十一个按钮(pushButton)的对象名(objectName)分别设置如下:

lineEdit_name(姓名输入框)

textEdit_address(地址输入框)

pushButton_add(添加 按钮)

pushButton_edit(编辑 按钮)

pushButton_remove(删除 按钮)

pushButton_find(查找 按钮)

pushButton_submit(提交 按钮)

pushButton_cancel(取消 按钮)

pushButton_load(导入 按钮)

pushButton_save(保存 按钮)

pushButton_export(导出 按钮)

pushButton_previous(前一个 按钮)

pushButton_next(后一个 按钮)

 

2、关闭Qt设计师,回到eric6

先右击addressbook.ui 文件,编译窗体,得到 Ui_addressbook.py 文件

然后再次右击addressbook.ui 文件,生成对话框代码,

在弹窗中勾选十一个按钮的 on_x_clicked() 事件,确定,得到 addressbook.py 文件。

 

3、对addressbook.py 文件执行下面四步处理

1)、清空所有注释

2)、去掉一个多余的点,将

from .Ui_addressbook import Ui_Form

变成:

from Ui_addressbook import Ui_Form

3)、将所有clicked()下的代码改写为pass

@pyqtSlot()    def on_pushButton_add_clicked(self):        pass        @pyqtSlot()    def on_pushButton_edit_clicked(self):        pass        # ...

4)、在 addressbook.py 文件最后面加上下面几句代码:

if __name__ == '__main__':    import sys    from PyQt5.QtWidgets import QApplication        app = QApplication(sys.argv)    dlg = Dialog()    dlg.show()    sys.exit(app.exec_())

最后,addressbook.py 看起来是这个样子:

 
View Code

 

4、下面添加逻辑代码

 
View Code

 

5、程序运行界面

 

 

 

本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/4237766.html
,如需转载请自行联系原作者
你可能感兴趣的文章
程序员如何让自己 Be Cloud Native - 配置篇
查看>>
SQL Server各个版本之间的差异
查看>>
如何拆笔记本键盘(组图)
查看>>
lua install
查看>>
海量数据处理 算法总结
查看>>
mysql性能参数查询
查看>>
VirtualBox运行报错Unable to load R3 module
查看>>
EBS Form个性化的工作原理
查看>>
SpringSecurity3整合CAS实现单点登录
查看>>
更新日期 2015年8月5日 - Citrix桌面虚拟化平台交付推荐版本及相关hotfix
查看>>
人工智能教程014:创建卷积神经网络进阶(5)
查看>>
oracle 分析函数
查看>>
idea 项目多开变通的解决方案
查看>>
游戏中发送道具奖励的概率算法
查看>>
Speed Tree
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
自增自减
查看>>
Oracle 10g bigfile表空间、smallfile 表空间
查看>>
List、Set、数组之间的转换
查看>>