PyQt5-Python中Button与TextEdit制作简单的计算器(Anaconda)

Python界面化编程可以通过PyQt5实现,PyQt5功能是对UI的排版,后台功能函数通过Python实现。

PyQt5可以直接在官网下载,安装即可。

我是用的是Anaconda,集成了Python与PyQt5,不需要再安装PyQt5。

在D:\Anaconda\Library\bin中找到designer.exe,打开进入一下UI排版界面。

 启动以后的对话框里“新建窗体”选择Main Window,然后直接创建,然后就直接形成了一个画布。

在左侧的widget box里面的input widget 中拖拽三个Text Edit控件到画布中,用来存放计算的两个数和结果。在Button中拖一个Push Button用于实现出发计算的事件按钮。注意的是在右侧的属性编辑器窗口中QObject中每个空间的属性值要注意,因为涉及到后期函数作用到该对象的唯一识别码。

下面就是给这四个控件进行赋值和添加Button的点击函数了。

三个Text Edit我们不用编辑 只需要对其进行赋值即可。

PushButton需要预先给它赋一个函数,通过上图中 编辑信号/槽 实现,在左上角 设置(s) 的下面。

 将该ui格式文件保存在指定的文件夹下面,将ui格式的文件转换位python文件。

E:\PyCharm\PythonFile\PyQt5>pyuic5 -o UIcode.py plussUI.ui

执行该命令。

页面编辑出来的python文件为一下:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'plussUI.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(40, 70, 104, 71))
        self.textEdit.setObjectName("textEdit")
        self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_2.setGeometry(QtCore.QRect(230, 70, 104, 71))
        self.textEdit_2.setObjectName("textEdit_2")
        self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_3.setGeometry(QtCore.QRect(460, 70, 104, 71))
        self.textEdit_3.setObjectName("textEdit_3")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(250, 190, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(150, 100, 54, 12))
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        self.menuPlusDemo = QtWidgets.QMenu(self.menubar)
        self.menuPlusDemo.setObjectName("menuPlusDemo")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menubar.addAction(self.menuPlusDemo.menuAction())

        self.retranslateUi(MainWindow)
        self.pushButton.clicked.connect(MainWindow.add_clicked)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.label.setText(_translate("MainWindow", "    +"))
        self.menuPlusDemo.setTitle(_translate("MainWindow", "PlusDemo"))

最后给该界面编辑功能函数

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow

from UI import Ui_MainWindow

class PyQtMainEntry(QMainWindow, Ui_MainWindow):   
    def __init__(self):
        super().__init__()
        self.setupUi(self)
    def add_clicked(self):
        x = int(self.textEdit.toPlainText())
        y = int(self.textEdit_2.toPlainText())
        result = x + y
        self.textEdit_3.setText(str(result))
        
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = PyQtMainEntry()
    window.show()
    sys.exit(app.exec_())

运行该程序得到

一次为例还可以延申出很多python的界面话编程。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值