工具/版本
(1)安装环境:Windows7 64bit
(2)使用版本Python3.6
(3)PYQT5
(4)eric6
最近由于经常做界面,将遇到的一些模块使用方法记录,供日后查找使用。
用 Eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足Python的极速GUI编程,你只需要关注程序的逻辑实现,而不需要在界面上花很多时间,可以说这是一对GUI开发完美的组合!
这里并不建议在其他地方开发界面,可能会有各种各样的报错,做好的方式就是,在pycharm中先开发主控程序,完成后直接添加到eric6中,在eric pyqt中中完成界面的设计和调试。
这节的目的是做一个界面,从文本框输入,点击开始后,输入框显示输出结果
一、版本安装
1、PYQT5,Eric6见前文安装篇https://blog.csdn.net/samenmoer/article/details/80302448
二、使用介绍
1、打开eric6
(1)打开方法为打开安装目录C:\Python34\Lib\site-packages\eric6-6.1.0\eric
双击eric6.pyw即可打开
2、新建一个项目
(1)打开Project/New
(2)输入工程名,选择工程所在的路径,然后点击ok
(3)完成后生成一个init.py里面是空的,不用理会
(4)点击下图红框位置Forms,空白处点击右键,新建一个Form
(5)选择窗口
(6)输入命名
(7)会自动调用Qtdesigner,打开软件
这里用了三个控件,label,lineEdit,pushButton
找到后,直接拖进框中,放置到合适的位置
双击label可以修改名称,同理,双击pushButton修改名称
点击某个控件,在右面的QObject中可以修改名称,所在位置,以及其他。
(8)加一个点击退出关闭功能。选择复选框,然后选择close
(9)完成后保存,回到eric6界面中,右键刚刚的hello.ui,compile form
可以看到source目录下多了一个py文件
个人习惯在pycharm中打开看代码,比较清晰舒服
运行后出现刚才的框,目前只有一个功能就是点击退出,可以关闭窗口
(10)接下来完善代码,打开eric,然后生成代码
可以看到多了一个hello.py
(11)执行代码需要增加下面这段
if __name__ == '__main__': app = QApplication(sys.argv) ui = MainWindow() ui.show() sys.exit(app.exec_())
需要把这两个库加上,还有把Ui_MainWindow前面的点"去掉
实现读入文本框中的数,并且在另一个框中写出
将这个函数修改为如下,点击按钮后,从lineEdit中读数,写入lineEdit_2中
def on_pushButton_clicked(self): data_in = self.lineEdit.text() print(data_in) self.lineEdit_2.setText(data_in)
点击运行,出现窗口,然后在第一个框输入任意字符,如下
点击开始两个框内容相同。
后记
简单实用就介绍到这里,本节主要有有eric和pyqt开发流程
按钮,文本框的输入输出
按钮使用
def on_pushButton_clicked(self):
data_in = self.lineEdit.text()#读取文本框内容
self.lineEdit_2.setText(data_in)#输出内容至文本框
附录全文源码
# -*- coding: utf-8 -*- """ Module implementing MainWindow. """ import sys from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMainWindow, QApplication from Ui_hello import Ui_MainWindow class MainWindow(QMainWindow, Ui_MainWindow): """ Class documentation goes here. """ def __init__(self, parent=None): """ Constructor @param parent reference to the parent widget @type QWidget """ super(MainWindow, self).__init__(parent) self.setupUi(self) @pyqtSlot() def on_pushButton_clicked(self): data_in = self.lineEdit.text()#读取文本框内容 print(data_in) self.lineEdit_2.setText(data_in)#输出内容至文本框 if __name__ == '__main__': app = QApplication(sys.argv) ui = MainWindow() ui.show() sys.exit(app.exec_())