diff --git a/calc.py b/calc.py
index aa11120bf9a8af9acd66a9a155a999a31856b9f6..e15ad9f7f511d856d657f689f4ebbcc90c53c34a 100644
--- a/calc.py
+++ b/calc.py
@@ -1,71 +1,110 @@
-#coding:utf-8
+# coding:utf-8
+
import sys
from PyQt5 import uic
-from PyQt5.QtWidgets import QApplication
+from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMainWindow
+
class Calc(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
- uic.loadUi('calc.ui',self)
- self.pushButton0.clicked.connect(self.a)
- self.pushButton1.clicked.connect(self.b)
- self.pushButton2.clicked.connect(self.c)
- self.pushButton3.clicked.connect(self.d)
- self.pushButton4.clicked.connect(self.e)
- self.pushButton5.clicked.connect(self.f)
- self.pushButton6.clicked.connect(self.g)
- self.pushButton7.clicked.connect(self.h)
- self.pushButton8.clicked.connect(self.k)
- self.pushButton9.clicked.connect(self.m)
- self.pushButton_clear.clicked.connect(self.calc_clear)
- self.pushButton_add.clicked.connect(self.calc_add)
- self.pushButton_sub.clicked.connect(self.calc_sub)
- self.pushButton_div.clicked.connect(self.calc_div)
- self.pushButton_mul.clicked.connect(self.calc_mul)
- self.pushButton_dot.clicked.connect(self.calc_dot)
- self.pushButton_equal.clicked.connect(self.calc_equal)
-
- def a(self):
- print '我被点击了0'
- def b(self):
- print '我被点击了1'
- def c(self):
- print '我被点击了2'
- def d(self):
- print '我被点击了3'
- def e(self):
- print '我被点击了4'
- def f(self):
- print '我被点击了5'
- def g(self):
- print '我被点击了6'
- def h(self):
- print '我被点击了7'
- def k(self):
- print '我被点击了8'
- def m(self):
- print '我被点击了9'
- def calc_add(self):
- print '我被点击了add===='
- def calc_sub(self):
- print '我被点击了sub===='
- def calc_div(self):
- print '我被点击了div==='
- def calc_mul(self):
- print '我被点击了mul==='
- def calc_equal(self):
- print '我被点击了equal==='
- def calc_dot(self):
- print '我被点击了dot==='
- def calc_clear(self):
- print '我被点击了clear==='
-if __name__ == '__main__':
- app = QApplication(sys.argv)
- calc = Calc()
- calc.show()
- app.exec_()
+ 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
+ ]
+ map(lambda btn: btn.clicked.connect(self.click_on_button), btns)
+
+ def calculate(self):
+ """
+ 如果x、y、operater不为空,计算结果。
+ """
+ if self.x and self.y and self.operator:
+ s = "%s%s%s"%(self.x,self.operator,self.y)
+ print s
+ self.result = str(eval(s))
+ self.text_result.setText(self.result)
+ def click_on_button(self):
+ print "点击按钮前:" ,self.x,self.operator,self.y
+ value = self.sender().text()
+
+ # 如果点击的是数字,print该数字
+ if value in "0123456789.":
+ print "您点击的数字是:",value
+ try:
+ if self.operator is None:
+ # 如果点击的是数字的话,保存到x或追加到x
+ if self.x is None:
+ self.x = value
+ else:
+ self.x +=value
+ self.text_result.setText(self.x)
+ else:
+ if self.y is None:
+ self.y = value
+ else:
+ self.y +=value
+ self.text_result.setText(self.y)
+ except Exception, e:
+ print e
+
+
+ #如果点击的是运算符,print该运算符
+ elif value in "+-*/":
+ print "print该运算符是:",value
+ self.operator = value
+ self.text_result.setText("")
+
+ # 如果点击的是=,print =
+
+ elif value == '=':
+ print "您点击的是=。"
+ self.calculate()
+ self.text_result.setText(self.result)
+
+
+ # 若果点击的是clear,执行clear()方法
+ 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_()
diff --git a/calc.ui b/calc.ui
index 69d1b645a96260523bfc75d47a19598889e9678e..7c1fcb80c507df0513db0e519776243b19b0e097 100644
--- a/calc.ui
+++ b/calc.ui
@@ -372,10 +372,7 @@
0
-
-
- false
-
+
0
@@ -384,12 +381,18 @@
41
-
-
- 15
- 75
- true
-
+
+ border:2px solid #676767;
+font-size:28px;
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ Qt::LinksAccessibleByMouse|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse