用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!
【题记】
我是一个菜鸟,这个系列是我的学习笔记。
PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错。
eric6 也是刚刚出来,eric6 与 PyQt5 结合的教程网上几乎没有。
本人也是一边学习,一边摸索,并记录与此,希望帮到有需要的朋友,更希望路过的大侠多多指教为好。
【引子】
用 eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足python的极速GUI编程,你只需要关注程序的逻辑实现,不需要在界面上花很多时间。
可以说这是一对完美的组合!
下面的内容基于:windows 7 + python 3.4.2 + PyQt5 + eric 6
【概览】
本文实现如下的程序:

主要步骤如下:
1、在eric6中新建项目
2、进入PyQt5 Desinger编辑图形界面(自动进入),并保存
3、回到eric 6将刚才的界面文件编译
4、然后给界面添加自己的程序逻辑
5、py2exe打包成exe文件(此步略)
【正文】
1、在eric6中新建项目








2、进入PyQt5 Desinger编辑图形界面(自动进入),并保存

在窗体中添加一个文本标签(label)、两按钮(pushButton)

设置文本标签、两按钮的对象名(objectName)为:label_hello,pushButton_ok,pushButton_close
设置文本标签、两按钮的文字(text)为:"在此显示","确定","退出"

给退出按钮添加信号/槽 (注:信号/槽机制是PyQt独有的信号传递机制,使用非常方便)


保存,然后关闭PyQt Designer

3、回到eric 6,将刚才的界面文件编译
回到eric 6后,发现窗体下多了个hello.ui文件,此文件本质是一个xml格式文件,不能被运行,需要右击它,选择 编译窗体


编译成功之后,发现源文件下多出了Ui_hello.py文件,这个文件就可以运行了

试着运行它,如图:

Wow! 界面出来了。一切正常。不过你会发现,只有退出按钮起作用,而确定按钮没反应。那是因为我们还没给确定按钮添加逻辑代码

这事好办,到窗体下右击hello.ui文件,选择 生成对话框代码


此处勾选pushButton下的on_pushButton_ok_clicked()

回到源代码下,发现又多出了一个hello.py文件

不管三七二十一,先运行它再说。呀!错误!!!

这个错误应该是eric 6的一个bug!!!,去掉Ui前面的点号,再运行,就没有报错了。真是太好了!诶,等一下,怎么没看到窗体出来呢?

少了几行代码,此处可以认为也是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_())
长嘘一口气,窗体终于又出来了,但是点击确定按钮的时候报错了又。原因很简单,我们还没有覆写给确定按钮的逻辑代码

把原来的代码删除,修改为一句。没错,我们的逻辑代码就是一句代码:
@pyqtSlot()
def on_pushButton_ok_clicked(self):
self.label_hello.setText('Hello world!')

保存一下,然后运行。OK,大功告成!

最后的话,eric + pyqt 进行python的gui编程真的是太方便了,只需要关注逻辑实现就可以了
(一个字一个字敲,一张图一张图截,终于完成了。欢迎转载,不过请保留作者名及原文链接。)
用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!的更多相关文章
- 用 eric6 与 PyQt5 实现python的极速GUI编程(35篇PyQT和200多篇Python)
[题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列04)---- PyQt5自带教程:地址簿(address book)
[引子] 在PyQt5自带教程中,地址簿(address book)程序没有完全实现界面与业务逻辑分离. 本文我打算用eric6+PyQt5对其进行改写,以实现界面与逻辑完全分离. [概览] 1.界面 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(2)-- 画点
[概览] 本文实现如下的程序:(在窗体中绘画出[-100, 100]两个周期的正弦函数图像) 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(1)-- 绘写文字
[概览] 本文实现如下的程序:(在窗体中绘画出文字) 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6, ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动
[概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(3)-- 画线
[概览] 本文实现如下的程序:(在窗体中绘画出各种不同风格的线条) 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到 ...
- python基础知识-GUI编程-TK-StringVar
1.如何引出StringVar 之前一直认为StringVar就是类似于Java的String类型的对象变量,今天在想要设置StringVar变量的值的时候,通过搜索发现StringVar并不是pyt ...
- python 面向对象编程案例01
# -*- coding: utf-8 -*- #python 27 #xiaodeng #面向对象编程案例01 class Behave(): def __init__(self,name): se ...
- Python gui编程pyQt5安装步骤t
Python gui编程pyQt5安装步骤 pip install PyQt5 Pip3 install PyQt5 https://riverbankco ...
随机推荐
- 软件测试作业3--Junit、hamcrest、eclemmat的安装和使用
1. how to install junit, hamcrest and eclemma? 首先下载下来Junit和Hamcrest的jar包,然后新建项目的时候将这两个jar包导入到工程里面就 ...
- 人生导师——如何学习C++的Windows方向
原来发在百度上,今天被人挖坟挖出来了,我就再贴出来吧. -----------------------有什么说的不对的地方---------------------- 本文原创,转载请注明出处并保持文 ...
- Semiconnected--强连通缩点
1451: Semiconnected 时间限制: 1 Sec 内存限制: 32 MB 提交: 79 解决: 20 题目描述 For a directed graph G = (V, E), if ...
- Uva-11374-Airport Express
A - Airport Express Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Appoi ...
- scau 8633 回文划分
8633 回文划分 时间限制:1000MS 内存限制:1000K 题型: 编程题 语言: 无限制 Description 我们说一个字符串是回文串,那么意味着这个串从两边读起来的字母都是一样的. ...
- Linux搭建DNS服务器
Linux系统信息: Version: Centos 6.6 Ip address:10.0.0.104 Hostname: extmail.com 配置系统 hostname Vim /etc/sy ...
- WCF并发控制与实例模式
WCF实例模式类型与区别 实例化模式 instanceMode percall 单调模式 [ServiceBehavior(InstanceContextMode=InstanceCon ...
- Centos7 搭建hadoop2.6 HA
用户配置: User :root Password:toor 2.创建新用户 student Pwd: student 3.安装virtualbox的增强工具软件 4.系统默认安装的是openjdk ...
- DAC使用基本准则
DAC Nyquist Zones, Zero Order Hold, and Images why do the Fout images exist in every Nyquist zone? W ...
- gnuplot 学习笔记
1 如何运行 gnuplot是一个命令行输入的工具,把命令行写入一个文本file1 file2.使用下列方式运行. gnuplot {option} file1 file2 2 产生一个图标,不管数据 ...