首页 > 其他分享 >PySide基础三大件案例_计算器

PySide基础三大件案例_计算器

时间:2024-02-21 18:35:01浏览次数:28  
标签:大件 clicked PySide self num connect 计算器 lambda addNumber

描述

制作一个简单的计算器,要求可以输入0-9的数字和四则运算,=则输出计算结果,reset则清空计算器

展示

代码

from PySide6.QtWidgets import QApplication,QWidget
from Calculator_ui  import Ui_Form

class Claculator(QWidget,Ui_Form):#Mark 使用多重继承的特性进行调用
    def __init__(self):
        super().__init__()
        self.setupUi(self)  #使用多重继承的特性可以少掉实例化赋值的步骤
        self.result=''
        self.bind()

    def bind(self):
        self.num_0.clicked.connect(lambda:self.addNumber('0'))
        self.num_1.clicked.connect(lambda:self.addNumber('1'))
        self.num_2.clicked.connect(lambda:self.addNumber('2'))
        self.num_3.clicked.connect(lambda:self.addNumber('3'))
        self.num_4.clicked.connect(lambda:self.addNumber('4'))
        self.num_5.clicked.connect(lambda:self.addNumber('5'))
        self.num_6.clicked.connect(lambda:self.addNumber('6'))
        self.num_7.clicked.connect(lambda:self.addNumber('7'))
        self.num_8.clicked.connect(lambda:self.addNumber('8'))
        self.num_9.clicked.connect(lambda:self.addNumber('9'))

        self.Add.clicked.connect(lambda:self.addNumber('+'))
        self.Subtract.clicked.connect(lambda:self.addNumber('-'))
        self.multiply.clicked.connect(lambda:self.addNumber('*'))
        self.divide.clicked.connect(lambda:self.addNumber('/'))
        self.point.clicked.connect(lambda:self.addNumber('.'))
        self.reset.clicked.connect(self.reseted)    #Fixed 命名不要重复,否则python会找不到对应的变量或函数
        self.enter.clicked.connect(self.equal)


    def addNumber(self,number):
        self.output.clear()
        self.result+=number
        self.output.setText(self.result)

    def equal(self):
        self.numberResult=eval(self.result)
        self.output.setText(str(self.numberResult))

    def reseted(self):
        self.result = ''
        self.output.clear()

if __name__=='__main__':
    app=QApplication([])
    window=Claculator()
    window.show()
    app.exec()

备注

因为Python不会进行严格的类型检查,因此保证命名不要重复,否则会出现各种意想不到的问题

标签:大件,clicked,PySide,self,num,connect,计算器,lambda,addNumber
From: https://www.cnblogs.com/shaoSaxon/p/18025950

相关文章

  • PySide基础三大件的案例_登录界面
    描述制作一个简单的登录界面,拥有两个输入框和对应的Label文字提示以及一个登录按钮用户输入账密后,如果是代码中编写的账密则将两个Label的文字替换展示操作步骤使用Designer软件制作一个UI文件使用VsCode插件的功能将其转成python文件新建一个python文件写具体代码代码f......
  • PySide基础三大件_QLineEdit
    简介QLineEdit是一种交互控件,作用是接收用户输入,账密输入框就是最典型的一种使用场景展示示例代码#NOTEQLineEdit是输入框fromPySide6.QtWidgetsimportQApplication,QWidget,QLineEdit,QVBoxLayoutclassMyWindow(QWidget):def__init__(self):super().......
  • PySide基础三大件_QPushButton
    简介QPushButton就是一种窗口上的按钮展示示例代码#NOTEQPushButton是按钮fromPySide6.QtWidgetsimportQApplication,QMainWindow,QPushButtonclassMyWindow(QMainWindow):def__init__(self):super().__init__()btn=QPushButton('点我',se......
  • 简易计算器
    //实现计算器publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);booleanflag=true;while(flag){System.out.println("请选择要进行的操作(+、-、*、/),输入x代表终止运行:");Stringope......
  • 写一个计算器加减乘除能循环接收
    需求写一个计算器加减乘除能循环接收代码实现packagecom.jichu.Method;importjava.util.Scanner;publicclassDemo07{publicstaticvoidmain(String[]args){//写一个计算器加减乘除能循环接收Scannerscanner=newScanner(System.in);......
  • 用Java编译一个简单计算器
    作业写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。思路推荐:写4个方法,加减乘除利用循环+switch进行用户交互传递需要操作的两个数输出结构packagecom.hongyi.method;importjava.util.Scanner;//写一个计算器,要实现加减乘除功能,......
  • 使用 PyQt5(PySide2)+SQLAlchemy 做一个登录注册页(一)
    使用PyQt5(PySide2)+SQLAlchemy做一个登录注册页(一)本文将介绍自己用PyQt5+SQLAlchemy做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端未分离的实现方式,后续将出一个前后端分离的,你可以将PyQt5改为PySide2以获得更宽松的开源协议本文由于涉及到的代码较多,将会是......
  • 9.【题解】计算器
    题解\(BSGS\)(拔山盖世)其实叫\(Baby\)\(Step\)\(Giant\)\(Step\)(大步小步)\(qwq\),事实上还有\(ex\)\(BSGS\),但是这里只写\(BSGS\)。当\(\gcd(x,y)=1\)时,\(BSGS\)可以用\(\sqrtn\)的时间复杂度求解\(\largey^x\equivz\pmodz\)的问题。(原根是\(\largex^a......
  • [office] 为Excel的工具栏添加计算器功能按钮
    在用Excel编辑文档时,有时需要计算一些数据的数值(加减乘除都可能要用到),一般我们都是点击“开始→程序→附件”再点击“计算器”,如果每次都这样操作的话就很麻烦。其实我们可以将计算器直接添加在Excel的工具栏上,方法如下。打开Excel,点击视图菜单的“工具(T)”,然后点击“自定义(C)......
  • python--pyQt 基础框架代码 pyside6
    importsysfromPySide6importQtWidgets,QtCore,QtGuifromPySide6.QtCoreimportQt,QRectfromPySide6.QtGuiimportQColor,QEnterEventfromPySide6.QtWidgetsimportQApplication,QDialog,QMainWindow,QGraphicsDropShadowEffectimportyiqi_uiclassMain......