当前位置: 首页 > article >正文

Python之pyqt5生成计算机前端页面并运行

pyqt5生成计算机前端页面并运行

目录

  • pyqt5生成计算机前端页面并运行
    • 前端设计
      • 输入和文本显示
      • 布局
      • 功能函数
      • 整体布局展示
    • 运行代码展示

前端设计


输入和文本显示

文本显示选择lineEdit部件,单行输入。
输入文本设置,为pushBottom,命名为数字1、2、3、4、5、6、7、8、9、0,以及+、-、*、/,以及=,点击除了=的按钮文本框会显示相应输出,点击=时会输出计算结果,最后是清除键,点击清除lineEdit的文本,也是pushBottom。

布局

第一行为文本输入及输出,剩下为pushBottom,可以使用栅格布局,可以自动调节布局
在这里插入图片描述

功能函数

  • 一键清除:clear键实现,使用自带的函数
  • 点击输入lineEdit文本:数字1、2、3、4、5、6、7、8、9、0,以及+、-、*、/
    点击输入文本代码,更改str(1)为对应按键文本
 def line_str1(self):
        try:
            a = self.lineEdit.text()
            b =a + str(1)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')
       
  • 输出lineEdit计算:=键 实现
    使用eval()进行文本字符串的计算。
    def line_str15(self):
        try:
            a = self.lineEdit.text()
            b = round(eval(a),8)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')

整体布局展示

布局如下
在这里插入图片描述

布局函数如下:
在这里插入图片描述

运行代码展示


代码展示:

from PyQt5 import QtCore, QtGui, QtWidgets  # 导入PyQt5的主要模块
from PyQt5.QtCore import *                 # 导入QtCore模块的所有内容,用于核心功能
from PyQt5.QtGui import *                  # 导入QtGui模块的所有内容,用于图形功能
from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox  # 导入QtWidgets模块中的一些特定类
'''QFileDialog可以帮助用户选择文件路径
QMainWindow则是创建具有菜单、工具栏和状态栏的主窗口的起点。
QMessageBox可以用于向用户显示提示或警告信息'''


from jsq import Ui_MainWindow  # 导入UI类,这个类包含了你的主窗口设计
import sys   # 导入系统模块,用于访问命令行参数和系统相关功能

class PyQtMainEntry(QMainWindow, Ui_MainWindow): # 定义一个继承自QMainWindow和Ui_MainWindow的类
    def __init__(self):  # 构造函数
        super().__init__()  # 调用基类的构造函数进行初始化
        self.setupUi(self)  # 调用setupUi方法,根据Ui_MainWindow设计设置界
        # self.model = joblib.load('tree_model.pkl')

    '''定义要触发的函数'''
  
    ### 全字符拼接1,2,3,5,6,7,9,10,11,13
    def line_str1(self):
        try:
            a = self.lineEdit.text()
            b =a + str(1)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')
    def line_str2(self):
        try:
            a = self.lineEdit.text()
            b = a + str(2)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')
    def line_str3(self):
        try:
            a = self.lineEdit.text()
            b = a + str(3)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')
    def line_str4(self):
        try:
            a = self.lineEdit.text()
            b = a + '+'
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')

    def line_str5(self):
        try:
            a = self.lineEdit.text()
            b = a + str(4)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')

    def line_str6(self):
        try:
            a = self.lineEdit.text()
            b = a + str(5)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')

    def line_str7(self):
        try:
            a = self.lineEdit.text()
            b = a + str(6)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')

    def line_str8(self):
        try:
            a = self.lineEdit.text()
            b = a + '-'
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')
    def line_str9(self):
        try:
            a = self.lineEdit.text()
            b = a + str(7)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')

    def line_str10(self):
        try:
            a = self.lineEdit.text()
            b = a + str(8)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')

    def line_str11(self):
        try:
            a = self.lineEdit.text()
            b = a + str(9)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')
    def line_str12(self):
        try:
            a = self.lineEdit.text()
            b = a + '*'
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')

    def line_str13(self):
        try:
            a = self.lineEdit.text()
            b = a + str(0)
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self, '错误', '请输入有效信息')

    def line_str16(self):
        try:
            a = self.lineEdit.text()
            b = a + '/'
            self.lineEdit.setText(b)
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')

    def line_str15(self):
        try:
            a = self.lineEdit.text()
            b = round(eval(a),8)
            self.lineEdit.setText(str(b))
        except ValueError:
            QMessageBox.warning(self,'错误','请输入有效信息')


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)  # 创建应用程序实例
    window = PyQtMainEntry()  # 创建主窗口实例
    window.show()  # 显示主窗口
    sys.exit(app.exec_())  # 进入事件循环,并确保在退出时清理

运行结果:
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/581715.html

相关文章:

  • Android :实现登录功能的思路
  • selenium的鼠标操作
  • SpringBoot 统一异常处理
  • JavaScript(Web APIs)
  • springboot433-基于SpringBoot的流浪猫爱心救助系统(源码+数据库+纯前后端分离+部署讲解等)
  • 消防行业如何借助 TDengine 打造高效的数据监控与分析系统
  • Spring(七)AOP-代理模式
  • 【群晖 NAS】把微软bing的背景图自动更换为群晖DSM7.X登录界面和DSM欢迎信息的教程
  • 「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件
  • VMware虚拟机迁移失败的故障排查方法
  • 文献阅读 | Nature Methods | SCENIC: 单细胞调控网络推断和聚类
  • warning: remote HEAD refers to nonexistent ref, unable to checkout.
  • Oracle 数据库导出与导入操作指南
  • 后端面试高频笔试题(非常规LeetCode类型)
  • 2025最新群智能优化算法:基于RRT的优化器(RRT-based Optimizer,RRTO)求解23个经典函数测试集,MATLAB
  • LVDS系列3:Xilinx的IOBUFDS原语
  • 通过 ElasticSearch的Python API和`curl` 命令获取Elasticsearch 所有索引名称
  • OpenManus 的提示词
  • ubuntu挂载新硬盘
  • Java中LinkedBlockingQueue在异步处理Kafka数据中的应用