设为首页 收藏本站
查看: 1525|回复: 0

[经验分享] 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!

[复制链接]

尚未签到

发表于 2015-4-23 09:22:29 | 显示全部楼层 |阅读模式
  
  【题记】
  我是一个菜鸟,这个系列是我的学习笔记。
  PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错。
  eric6 也是刚刚出来,eric6 与 PyQt5 结合的教程网上几乎没有。
  本人也是一边学习,一边摸索,并记录与此,希望帮到有需要的朋友,更希望路过的大侠多多指教为好。
  
  【引子】
  用 eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足python的极速GUI编程,你只需要关注程序的逻辑实现,不需要在界面上花很多时间。
  可以说这是一对完美的组合!
  下面的内容基于:windows 7 + python 3.4.2 + PyQt5 + eric 6
  
  【概览】
  本文实现如下的程序:
DSC0000.png     DSC0001.png
  主要步骤如下:
  1、在eric6中新建项目
  2、进入PyQt5 Desinger编辑图形界面(自动进入),并保存
  3、回到eric 6将刚才的界面文件编译
  4、然后给界面添加自己的程序逻辑
  5、py2exe打包成exe文件(此步略)
  
  【正文】
  1、在eric6中新建项目
DSC0002.png
  
DSC0003.png
  
DSC0004.png
DSC0005.png
DSC0006.png
  
DSC0007.png
  
DSC0008.png
  
DSC0009.png
  
  2、进入PyQt5 Desinger编辑图形界面(自动进入),并保存
DSC00010.png
  
  在窗体中添加一个文本标签(label)、两按钮(pushButton)
DSC00011.png
  设置文本标签、两按钮的对象名(objectName)为:label_hello,pushButton_ok,pushButton_close
  设置文本标签、两按钮的文字(text)为:"在此显示","确定","退出"
DSC00012.png
  
  给退出按钮添加信号/槽        (注:信号/槽机制是PyQt独有的信号传递机制,使用非常方便)
DSC00013.png
  
  
DSC00014.png
  保存,然后关闭PyQt Designer
DSC00015.png
  
  3、回到eric 6,将刚才的界面文件编译
  回到eric 6后,发现窗体下多了个hello.ui文件,此文件本质是一个xml格式文件,不能被运行,需要右击它,选择 编译窗体
DSC00016.png
  
DSC00017.png
  
  编译成功之后,发现源文件下多出了Ui_hello.py文件,这个文件就可以运行了
DSC00018.png
  试着运行它,如图:
DSC00019.png
  
  Wow! 界面出来了。一切正常。不过你会发现,只有退出按钮起作用,而确定按钮没反应。那是因为我们还没给确定按钮添加逻辑代码
DSC00020.png
  这事好办,到窗体下右击hello.ui文件,选择 生成对话框代码
DSC00021.png
  
DSC00022.png
  此处勾选pushButton下的on_pushButton_ok_clicked()
DSC00023.png
  回到源代码下,发现又多出了一个hello.py文件
DSC00024.png
  
  不管三七二十一,先运行它再说。呀!错误!!!
DSC00025.png
  这个错误应该是eric 6的一个bug!!!,去掉Ui前面的点号,再运行,就没有报错了。真是太好了!诶,等一下,怎么没看到窗体出来呢?
DSC00026.png
  少了几行代码,此处可以认为也是eric 6的一个bug。那就自己动手吧,在hello.py的最下面添加这几行:



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

  长嘘一口气,窗体终于又出来了,但是点击确定按钮的时候报错了又。原因很简单,我们还没有覆写给确定按钮的逻辑代码
DSC00027.png
  把原来的代码删除,修改为一句。没错,我们的逻辑代码就是一句代码:



@pyqtSlot()
def on_pushButton_ok_clicked(self):
self.label_hello.setText('Hello world!')

  
DSC00028.png
  保存一下,然后运行。OK,大功告成!
DSC00029.png
  
  
  
  最后的话,eric + pyqt 进行python的gui编程真的是太方便了,只需要关注逻辑实现就可以了
  
  (一个字一个字敲,一张图一张图截,终于完成了。欢迎转载,不过请保留作者名及原文链接。)
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59887-1-1.html 上篇帖子: flex与python后台的交互(原创) 下篇帖子: python 科学计算(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表