python学习记录之---------PYQT5做工具(1)eric与PYQT联合使用快速做界面

工具/版本

(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_())

猜你喜欢

转载自blog.csdn.net/samenmoer/article/details/80287388