python中calc_calc.py

# coding:utf-8

import sys

from PyQt5 import uic

from PyQt5.QtWidgets import QApplication

from PyQt5.QtWidgets import QMainWindow

class Calc(QMainWindow):

def __init__(self):

QMainWindow.__init__(self)

self.x = None

self.y = None

self.result = None

self.operator = None

self.equal = None

uic.loadUi('calc.ui', self)

btns = [

self.pushButton0,

self.pushButton1,

self.pushButton2,

self.pushButton3,

self.pushButton4,

self.pushButton5,

self.pushButton6,

self.pushButton7,

self.pushButton8,

self.pushButton9,

self.pushButton_clear,

self.pushButton_add,

self.pushButton_sub,

self.pushButton_div,

self.pushButton_mul,

self.pushButton_dot,

self.pushButton_equal

]

for btn in btns:

btn.clicked.connect(self.click_on_button)

def calculate(self):

"""

如果x、y、operater不为空,计算结果,计算出结果后,清空y,保持x和结果相等。

"""

if self.x and self.y and self.operator:

s = "%s%s%s"%(self.x,self.operator,self.y)

print s

self.x = self.result = str(eval(s))

self.y = None

self.text_result.setText(self.result)

def click_on_button(self):

print "点击按钮前:" ,self.x,self.operator,self.y

value = self.sender().text()

# 点击数字的处理:

# 1 点数字时,无运算符且有x,累加x

# 2 点数字时,有运算符且有y,累加y

# 3 点数字时,无运算符且无x,赋值给x

# 4 点数字时,有运算符且无Y,赋值给y

if value in "0123456789.":

if self.operator is not None: # 有运算符

if self.y is not None: #有y

self.y =self.y + value

else:#无y

if value != '0':

self.y = value

if self.y is not None:

self.text_result.setText(self.y)

else:#无运算符

if self.x is not None:#有x

self.x = self.x + value

else:

if value != '0':

self.x = value

if self.x is not None:

self.text_result.setText(self.x)

# 开始处理运算符

# 1.点运算符时记录运算符

# 2.点运算符时计算结果,然后记录运算符(x,y,oper都有值)

# 2.点运算符时记录运算符并计算结果(x,y,oper都有值)

# 3.点运算符时记录运算符,并将x置为0(x无值)

elif value in "+-*/":

if self.x is None:

self.x = '0'

if self.x and self.y and self.operator:

self.calculate()

self.operator = value

# 处理点击等号的操作

# 1.点等号时计算结果 (x,y,oper都有值)

# 2.点等号时忽略等号 (x,y,oper不都有值)

elif value == "=":

if self.x and self.y and self.operator:

self.calculate()

else:

print "您点击的是C"

self.clear()

print "点击按钮后:" ,self.x,self.operator,self.y

def clear(self):

self.x = None

self.y = None

self.result = None

self.operator = None

self.text_result.setText("")

if __name__ == '__main__':

app = QApplication(sys.argv)

calc = Calc()

calc.show()

app.exec_()

一键复制

编辑

Web IDE

原始数据

按行查看

历史

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值