From 28f8d91fe8df75dae5ae47ef9efa3cf4fe599c8b Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Thu, 30 Mar 2017 17:54:55 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=98=AF=E6=89=93=E5=8F=91=E6=96=AF?= =?UTF-8?q?=E8=92=82=E8=8A=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- calc.ui | 8 ++++---- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/calc.py b/calc.py index b9ecbd5..aa11120 100644 --- a/calc.py +++ b/calc.py @@ -1,3 +1,4 @@ +#coding:utf-8 import sys from PyQt5 import uic from PyQt5.QtWidgets import QApplication @@ -7,13 +8,60 @@ 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) - print help(QApplication) calc = Calc() calc.show() app.exec_() diff --git a/calc.ui b/calc.ui index 5b653a6..69d1b64 100644 --- a/calc.ui +++ b/calc.ui @@ -232,7 +232,7 @@ . - + 150 @@ -252,7 +252,7 @@ + - + 150 @@ -272,7 +272,7 @@ - - + 150 @@ -292,7 +292,7 @@ * - + 150 -- Gitee From caf45b47c47dd7af74f6dee04f2aa44ab3e84176 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Thu, 30 Mar 2017 19:49:43 +0800 Subject: [PATCH 02/11] 20170330 --- abb.txt | 1 + addd.txt | 2 ++ calc.py | 12 ++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 abb.txt create mode 100644 addd.txt diff --git a/abb.txt b/abb.txt new file mode 100644 index 0000000..a583f0c --- /dev/null +++ b/abb.txt @@ -0,0 +1 @@ +Է𸴵 \ No newline at end of file diff --git a/addd.txt b/addd.txt new file mode 100644 index 0000000..f1ab453 --- /dev/null +++ b/addd.txt @@ -0,0 +1,2 @@ +Ŀͻͷ˵Ŀռֿ˵ +ļʿȽ diff --git a/calc.py b/calc.py index aa11120..ed3e255 100644 --- a/calc.py +++ b/calc.py @@ -26,6 +26,11 @@ class Calc(QMainWindow): self.pushButton_dot.clicked.connect(self.calc_dot) self.pushButton_equal.clicked.connect(self.calc_equal) + + + + + def a(self): print '我被点击了0' def b(self): @@ -60,6 +65,13 @@ class Calc(QMainWindow): print '我被点击了dot===' def calc_clear(self): print '我被点击了clear===' + + + + + + + if __name__ == '__main__': app = QApplication(sys.argv) calc = Calc() -- Gitee From 199e60ea1fc4a2ca1e3b3c1e18b67275fcb09651 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 09:16:23 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2017_3_30/calculator.py | 17 -- 2017_3_30/calculator.ui | 631 ---------------------------------------- abb.txt | 1 - addd.txt | 2 - 4 files changed, 651 deletions(-) delete mode 100644 2017_3_30/calculator.py delete mode 100644 2017_3_30/calculator.ui delete mode 100644 abb.txt delete mode 100644 addd.txt diff --git a/2017_3_30/calculator.py b/2017_3_30/calculator.py deleted file mode 100644 index a2dfefa..0000000 --- a/2017_3_30/calculator.py +++ /dev/null @@ -1,17 +0,0 @@ -import sys -from PyQt5 import uic -from PyQt5.QtWidgets import QApplication,QMainWindow - - - -class Calc(QMainWindow): - def __init__(self): - QMainWindow.__init__(self) - uic.loadUi('calculator.ui',self) - - -if __name__ == '__main__': - app = QApplication(['calculator.py']) - calc = Calc() - calc.show() - app.exec_() \ No newline at end of file diff --git a/2017_3_30/calculator.ui b/2017_3_30/calculator.ui deleted file mode 100644 index 7df6de9..0000000 --- a/2017_3_30/calculator.ui +++ /dev/null @@ -1,631 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 334 - 314 - - - - - 10 - 0 - - - - - 800 - 800 - - - - MainWindow - - - - - - 50 - 170 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 1 - - - - 50 - 50 - - - - - - - 100 - 170 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - - 50 - 50 - - - - - 50 - 50 - - - - 2 - - - - 50 - 50 - - - - - - - 150 - 170 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 3 - - - - 50 - 50 - - - - - - - 50 - 120 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 4 - - - - 50 - 50 - - - - - - - 100 - 120 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 5 - - - - 50 - 50 - - - - - - - 150 - 120 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 6 - - - - 50 - 50 - - - - - - - 50 - 70 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 7 - - - - 50 - 50 - - - - - - - 100 - 70 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 8 - - - - 50 - 50 - - - - - - - 150 - 70 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - 9 - - - - 50 - 50 - - - - - - - 50 - 220 - 91 - 41 - - - - - 10 - 10 - - - - - 800 - 800 - - - - 0 - - - - 50 - 50 - - - - - - - 150 - 220 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - . - - - - 50 - 50 - - - - - - - 200 - 220 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - + - - - - 50 - 50 - - - - - - - 200 - 170 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - - - - - - 50 - 50 - - - - - - - 200 - 120 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - * - - - - 50 - 50 - - - - - - - 200 - 70 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - / - - - - 50 - 50 - - - - - - - 250 - 170 - 41 - 91 - - - - - 10 - 10 - - - - - 100 - 100 - - - - = - - - - 50 - 50 - - - - - - - 250 - 120 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - % - - - - 50 - 50 - - - - - - - 250 - 70 - 41 - 41 - - - - - 10 - 10 - - - - - 50 - 50 - - - - C - - - - 50 - 50 - - - - - - - 50 - 20 - 241 - 51 - - - - - - - - 0 - 0 - 334 - 23 - - - - - - - 800 - 800 - - - - - - - diff --git a/abb.txt b/abb.txt deleted file mode 100644 index a583f0c..0000000 --- a/abb.txt +++ /dev/null @@ -1 +0,0 @@ -Է𸴵 \ No newline at end of file diff --git a/addd.txt b/addd.txt deleted file mode 100644 index f1ab453..0000000 --- a/addd.txt +++ /dev/null @@ -1,2 +0,0 @@ -Ŀͻͷ˵Ŀռֿ˵ -ļʿȽ -- Gitee From cf2dc1229bb6d83e1d58ddb9ecc59c85e15a47a1 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 09:24:58 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E7=AE=80=E5=8C=96=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 95 ++++++++++++++++----------------------------------------- 1 file changed, 27 insertions(+), 68 deletions(-) diff --git a/calc.py b/calc.py index ed3e255..5889272 100644 --- a/calc.py +++ b/calc.py @@ -1,83 +1,42 @@ -#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) - - - - + 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.f), btns) - - 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===' - - + print self.sender().text() - - - -if __name__ == '__main__': +if __name__ == '__main__': app = QApplication(sys.argv) calc = Calc() calc.show() app.exec_() - - - - -- Gitee From b2128e532246ab97ecbd829903798a46ca5c42a6 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 09:48:38 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9map=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/calc.py b/calc.py index 5889272..c0d89d9 100644 --- a/calc.py +++ b/calc.py @@ -10,32 +10,33 @@ class Calc(QMainWindow): QMainWindow.__init__(self) 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 + 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.f), btns) + map(lambda btn: btn.clicked.connect(self.f), btns) def f(self): print self.sender().text() if __name__ == '__main__': + app = QApplication(sys.argv) calc = Calc() calc.show() -- Gitee From 162151284cf6cf2605d1b078fdbb85049e7aac9e Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 11:21:07 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 26 ++++++++++++++++++++++++-- calc.ui | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/calc.py b/calc.py index c0d89d9..61eeca8 100644 --- a/calc.py +++ b/calc.py @@ -8,7 +8,15 @@ 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 + self.clear = None + uic.loadUi('calc.ui', self) + btns = [ self.pushButton0, self.pushButton1, @@ -29,9 +37,23 @@ class Calc(QMainWindow): self.pushButton_equal, ] - map(lambda btn: btn.clicked.connect(self.f), btns) + 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: + self.result = str(eval("%s%s%s"%(self.x,self.operator,self.y))) + self.text_result.setText(self.result) + + + + - def f(self): + def click_on_button(self): print self.sender().text() diff --git a/calc.ui b/calc.ui index 69d1b64..12e7f52 100644 --- a/calc.ui +++ b/calc.ui @@ -372,7 +372,7 @@ 0 - + false -- Gitee From 70897ebc9138fb053ce64c81f6dac1db39c8bb87 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 16:47:52 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++------- calc.ui | 23 ++++++++++++++-------- 2 files changed, 67 insertions(+), 15 deletions(-) diff --git a/calc.py b/calc.py index 61eeca8..8d26077 100644 --- a/calc.py +++ b/calc.py @@ -13,7 +13,7 @@ class Calc(QMainWindow): self.result = None self.operator = None self.equal = None - self.clear = None + uic.loadUi('calc.ui', self) @@ -39,22 +39,64 @@ class Calc(QMainWindow): 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: - self.result = str(eval("%s%s%s"%(self.x,self.operator,self.y))) + 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 + + 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) + + + # 如果点击的是运算符 + elif value in '+-*/': + print "你点击的是:", value + self.operator = value + self.text_result.setText("") + + # 如果点击的是等号 + elif value in '=': + print "你点击的是=,执行=号", value + self.calculate() + self.text_result.setText(self.result) + # 如果点击的是C + elif value in 'C': + print "你点击的是C,执行清除" + self.clear() + print "点击按钮后:",self.x,self.operator,self.y - - def click_on_button(self): - print self.sender().text() + def clear(self): + self.x = None + self.y = None + self.result = None + self.operator = None + self.text_result.setText("") if __name__ == '__main__': @@ -62,4 +104,7 @@ if __name__ == '__main__': app = QApplication(sys.argv) calc = Calc() calc.show() + + + app.exec_() diff --git a/calc.ui b/calc.ui index 12e7f52..32bb579 100644 --- a/calc.ui +++ b/calc.ui @@ -372,25 +372,32 @@ 0 - - - false - + - 0 - 0 - 241 + 10 + 10 + 231 41 - 15 + 新宋体 + 20 75 true + + Qt::RightToLeft + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + -- Gitee From 253400116483287a6bdc7f0412937ce561c0d505 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Fri, 31 Mar 2017 19:18:23 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=A4=9A=E4=B8=AA...?= =?UTF-8?q?=20=E8=BF=90=E7=AE=97=E7=BB=93=E6=9D=9F=E7=BB=A7=E7=BB=AD?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97=E8=A2=AB=E5=8A=A0=E5=88=B0?= =?UTF-8?q?x=E4=B8=8A=EF=BC=8C=E6=B2=A1=E8=A7=A3=E5=86=B3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 104 +++++++++++++++++++++++++++++++++++++++++++++++--------- calc.ui | 18 +++++++--- 2 files changed, 102 insertions(+), 20 deletions(-) diff --git a/calc.py b/calc.py index 8d26077..16fbd76 100644 --- a/calc.py +++ b/calc.py @@ -39,16 +39,46 @@ class Calc(QMainWindow): 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: + #运行计算前判断x是不是为空,如果为空,x=0 + if self.x: + s = "%s%s%s" %(self.x,self.operator,self.y) + print s + self.result = str(eval(s)) + self.text_result.setText(self.result) + else: + self.x = "0" s = "%s%s%s" %(self.x,self.operator,self.y) print s self.result = str(eval(s)) self.text_result.setText(self.result) + + + + + + + + def equ(): + """ + =号运算 + """ + + + pass + + + + + + + #识别点击按钮 def click_on_button(self): print "点击按钮前:",self.x,self.operator,self.y value = self.sender().text() @@ -61,14 +91,28 @@ class Calc(QMainWindow): #如果点击的是数字,保存到x或追加到x if self.x is None: self.x = value - else: - self.x += value + else: + #如果value是".",判断"."是否在x里面 + if value in ".": + if "." in self.x: + pass + else: + 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 + if value in ".": + if "." in self.y: + pass + else: + self.y += value + else: + self.y += value self.text_result.setText(self.y) @@ -76,13 +120,42 @@ class Calc(QMainWindow): elif value in '+-*/': print "你点击的是:", value self.operator = value - self.text_result.setText("") + self.text_result.setText(value) # 如果点击的是等号 elif value in '=': - print "你点击的是=,执行=号", value - self.calculate() - self.text_result.setText(self.result) + #=运行前判断y是不是为空,如果是空的,y=x + if self.y: + #判断做除法计算时,y是否为0 + if self.operator in '/': + if self.y in '0': + self.text_result.setText("除数不能为0") + else: + print "你点击的是=,执行=号", value + self.calculate() + self.text_result.setText(self.result) + self.x = self.result + self.y = None + self.operator = None + else: + print "你点击的是=,执行=号", value + self.calculate() + self.text_result.setText(self.result) + self.x = self.result + self.y = None + self.operator = None + + else: + self.y = self.x + self.operator = "+" + print "你点击的是=,执行=号", value + self.calculate() + self.text_result.setText(self.result) + self.x = self.result + self.y = None + self.operator = None + + # 如果点击的是C elif value in 'C': @@ -100,11 +173,10 @@ class Calc(QMainWindow): if __name__ == '__main__': - - app = QApplication(sys.argv) - calc = Calc() - calc.show() - - - - app.exec_() + try: + app = QApplication(sys.argv) + calc = Calc() + calc.show() + app.exec_() + except Exception, e: + print e diff --git a/calc.ui b/calc.ui index 32bb579..386a9de 100644 --- a/calc.ui +++ b/calc.ui @@ -376,22 +376,32 @@ 10 - 10 + 0 231 41 - 新宋体 + Aharoni 20 - 75 - true + 9 + false + false Qt::RightToLeft + + border-color: rgb(255, 34, 104); +font: 75 20pt "Aharoni"; +color: rgb(85, 0, 255); + + +border-top-color: rgb(0, 85, 255); +background-color: rgb(255, 255, 255); + -- Gitee From 6cbdbbf7128ed4213cbb8617cdcb7e672e95f580 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Sat, 1 Apr 2017 17:50:00 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=86=99=E4=B8=80?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 243 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 123 insertions(+), 120 deletions(-) diff --git a/calc.py b/calc.py index 16fbd76..59fb373 100644 --- a/calc.py +++ b/calc.py @@ -8,15 +8,8 @@ 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) + uic.loadUi('calc.ui', self) # ui动作识别 btns = [ self.pushButton0, self.pushButton1, @@ -34,29 +27,135 @@ class Calc(QMainWindow): self.pushButton_div, self.pushButton_mul, self.pushButton_dot, - self.pushButton_equal, + self.pushButton_equal ] + for btn in btns: + btn.clicked.connect(self.click_on_button) - map(lambda btn: btn.clicked.connect(self.click_on_button), btns) - #进行计算 - def calculate(self): - """ - 如果x,y,operater不为空,计算结果。 + def click_on_button(self): + """先进入初始状态,进入计算,显示结果, + 点c进入初始状态 """ - #运行计算前判断x是不是为空,如果为空,x=0 - if self.x: - s = "%s%s%s" %(self.x,self.operator,self.y) + + def start(self): #初始状态 + self.x = None # 操作数 + self.y = None # 被操作数 + self.operator = None # 操作符 + self.displaying = '0' # 结果 + + def calculate(): #进行计算 + s = "%s%s%s"%(self.x,self.operator,self.y) print s - self.result = str(eval(s)) - self.text_result.setText(self.result) - else: - self.x = "0" - s = "%s%s%s" %(self.x,self.operator,self.y) + self.do_result = str(eval(s)) + self.displaying = self.do_result + + + def display(d): + self.text_result.setText(d) #显示结果 + + + # self.x = '1' # 操作数,假设进行运算时的值 + # self.y = '5' # 被操作数,假设进行运算时的值 + # self.operator = '+' # 操作符,假设进行运算时的值 + + # ================================================ + + self.do_result = None: #尝试把结果当作参数赋值为空 + + + value = self.sender().text() + def assignment_x(value): #给x赋值 + self.x += value + def assignment_y(value): #给y赋值 + self.y += value + + if self value in "0123456789.": + print self.x,self.operator,self.y,self.do_result + if self.operator and self.do_result: + self.x += value + else: + self.y += value + + + + + + + # value = self.sender().text() + # 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 + # 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 + # 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 calculate(): #进行计算 + s = "%s%s%s"%(self.x,self.operator,self.y) print s - self.result = str(eval(s)) - self.text_result.setText(self.result) + self.do_result = str(eval(s)) + self.displaying = self.do_result + + + def display(d): + self.text_result.setText(d) #显示结果 + + + #================================================================ + + # try: + # calculate() #测试calculate函数 + # display(self.displaying) #测试display函数 + # except Exception, e: + # print e + + @@ -65,111 +164,15 @@ class Calc(QMainWindow): - def equ(): - """ - =号运算 - """ - pass - #识别点击按钮 - def click_on_button(self): - print "点击按钮前:",self.x,self.operator,self.y - value = self.sender().text() - - # 如果你点击的是数字,print该数字 - if value in '0123456789.': - print "你点击的数字是:",value - - if self.operator is None: - #如果点击的是数字,保存到x或追加到x - if self.x is None: - self.x = value - else: - #如果value是".",判断"."是否在x里面 - if value in ".": - if "." in self.x: - pass - else: - self.x += value - else: - self.x += value - - self.text_result.setText(self.x) - else: - if self.y is None: - self.y = value - else: - if value in ".": - if "." in self.y: - pass - else: - self.y += value - else: - self.y += value - self.text_result.setText(self.y) - - - # 如果点击的是运算符 - elif value in '+-*/': - print "你点击的是:", value - self.operator = value - self.text_result.setText(value) - - # 如果点击的是等号 - elif value in '=': - #=运行前判断y是不是为空,如果是空的,y=x - if self.y: - #判断做除法计算时,y是否为0 - if self.operator in '/': - if self.y in '0': - self.text_result.setText("除数不能为0") - else: - print "你点击的是=,执行=号", value - self.calculate() - self.text_result.setText(self.result) - self.x = self.result - self.y = None - self.operator = None - else: - print "你点击的是=,执行=号", value - self.calculate() - self.text_result.setText(self.result) - self.x = self.result - self.y = None - self.operator = None - else: - self.y = self.x - self.operator = "+" - print "你点击的是=,执行=号", value - self.calculate() - self.text_result.setText(self.result) - self.x = self.result - self.y = None - self.operator = None - - - - # 如果点击的是C - elif value in 'C': - 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__': -- Gitee From e4b32f6a75e880344fc2496fe558f28e232d1486 Mon Sep 17 00:00:00 2001 From: Yesteryou <59052127@qq.com> Date: Sat, 1 Apr 2017 17:51:50 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=80=9D=E8=B7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\256\241\347\256\227\345\231\250.xmind" | Bin 0 -> 17237 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\350\256\241\347\256\227\345\231\250.xmind" diff --git "a/\350\256\241\347\256\227\345\231\250.xmind" "b/\350\256\241\347\256\227\345\231\250.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..00b6e312d7f160403042fd1bce5dad9d3d250369 GIT binary patch literal 17237 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 Date: Mon, 3 Apr 2017 13:12:25 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.py | 270 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 134 insertions(+), 136 deletions(-) diff --git a/calc.py b/calc.py index 59fb373..ba47bd3 100644 --- a/calc.py +++ b/calc.py @@ -9,6 +9,11 @@ class Calc(QMainWindow): def __init__(self): QMainWindow.__init__(self) + self.x = None # 操作数 + self.y = None # 被操作数 + self.operator = None # 操作符 + self.do_result = None # 计算结果 + uic.loadUi('calc.ui', self) # ui动作识别 btns = [ self.pushButton0, @@ -32,147 +37,140 @@ class Calc(QMainWindow): for btn in btns: btn.clicked.connect(self.click_on_button) - - def click_on_button(self): - """先进入初始状态,进入计算,显示结果, - 点c进入初始状态 + """主要思想: + 每次点击按钮时, + 先判断结果是否有值, + 再判断y是否有值 + 再判断运算符是否有值 + 再判断x是否有值 """ - - def start(self): #初始状态 + value = self.sender().text() + if value in "0123456789": + print "点击按钮前:", self.x, self.operator, self.y, self.do_result + if self.do_result: # 判断结果如果有值 + self.x = value + self.text_result.setText(self.x) + self.do_result = None + self.operator = None + self.y = None + elif self.y: # 结果没有值时,判断y是如果有值 + self.y += value + self.text_result.setText(self.y) + elif self.operator: # y如果没有有值,判断operator如果有值 + self.y = value + self.text_result.setText(self.y) + elif self.x: # 运算符如果没有,判断x如果有值 + self.x += value + self.text_result.setText(self.x) + else: # x如果没有值 + self.x = value + self.text_result.setText(self.x) + print "点击按钮后:", self.x, self.operator, self.y, self.do_result + + elif value in "+-*/": + print "点击按钮前:", self.x, self.operator, self.y, self.do_result + if self.do_result: # 判断结果如果有值 + self.x = self.do_result + self.operator = value + self.text_result.setText(self.operator) + self.do_result = None + self.y = None + elif self.y: # y如果没有有值,判断operator如果有值 + s = "%s%s%s" % (self.x, self.operator, self.y) + if float(self.y) == 0.0 and self.operator == '/': #运算符是除法,除数为0时 + self.text_result.setText('除数不能为0') + self.x = None + self.y = None + self.operator = None + self.do_result = None + else: + self.do_result = str(eval(s)) + self.text_result.setText(self.do_result) + self.x = self.do_result + self.y = None + self.operator = value + self.do_result = None + elif self.x: # 运算符如果没有,判断x如果有值 + self.operator = value + self.text_result.setText(self.operator) + else: # x如果没有值 + self.x = '0' + self.operator = value + self.text_result.setText(self.operator) + print "点击按钮后:", self.x, self.operator, self.y, self.do_result + + elif value in '=': + if self.do_result: + self.x = self.do_result + s = "%s%s%s" % (self.x, self.operator, self.y) + if float(self.y) == 0.0 and self.operator == '/': #运算符是除法,除数为0时 + self.text_result.setText('除数不能为0') + self.x = None + self.y = None + self.operator = None + self.do_result = None + else: + self.do_result = str(eval(s)) + self.text_result.setText(self.do_result) + elif self.y: + s = "%s%s%s" % (self.x, self.operator, self.y) + if float(self.y) == 0.0 and self.operator == '/': #运算符是除法,除数为0时 + self.text_result.setText('除数不能为0') + self.x = None + self.y = None + self.operator = None + self.do_result = None + else: + self.do_result = str(eval(s)) + self.text_result.setText(self.do_result) + elif self.operator: + self.y = self.x + s = "%s%s%s" % (self.x, self.operator, self.y) + if float(self.y) == 0.0 and self.operator == '/': #运算符是除法,除数为0时 + self.text_result.setText('除数不能为0') + self.x = None + self.y = None + self.operator = None + self.do_result = None + else: + self.do_result = str(eval(s)) + self.text_result.setText(self.do_result) + elif self.x: + self.text_result.setText(self.x) + + elif value in 'C': self.x = None # 操作数 self.y = None # 被操作数 - self.operator = None # 操作符 - self.displaying = '0' # 结果 - - def calculate(): #进行计算 - s = "%s%s%s"%(self.x,self.operator,self.y) - print s - self.do_result = str(eval(s)) - self.displaying = self.do_result - - - def display(d): - self.text_result.setText(d) #显示结果 - - - # self.x = '1' # 操作数,假设进行运算时的值 - # self.y = '5' # 被操作数,假设进行运算时的值 - # self.operator = '+' # 操作符,假设进行运算时的值 - - # ================================================ - - self.do_result = None: #尝试把结果当作参数赋值为空 - - - value = self.sender().text() - def assignment_x(value): #给x赋值 - self.x += value - def assignment_y(value): #给y赋值 - self.y += value - - if self value in "0123456789.": - print self.x,self.operator,self.y,self.do_result - if self.operator and self.do_result: - self.x += value + self.operator = None # 操作符 + self.do_result = None # 计算结果 + self.text_result.setText('0') + + elif value in '.': + if self.do_result: + self.x = '0.' + self.do_result = None + self.y = None + self.operator = None + self.text_result.setText(self.x) + elif self.y: + if '.' in self.y: + pass + else: + self.y += value + self.text_result.setText(self.y) + elif self.operator: + self.y = '0.' + self.text_result.setText(self.y) + elif self.x: + if '.' in self.x: + pass + else: + self.x += value + self.text_result.setText(self.x) else: - self.y += value - - - - - - - # value = self.sender().text() - # 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 - # 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 - # 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 calculate(): #进行计算 - s = "%s%s%s"%(self.x,self.operator,self.y) - print s - self.do_result = str(eval(s)) - self.displaying = self.do_result - - - def display(d): - self.text_result.setText(d) #显示结果 - - - #================================================================ - - # try: - # calculate() #测试calculate函数 - # display(self.displaying) #测试display函数 - # except Exception, e: - # print e - - - - - - - - - - - - - - - - - - - + self.x = '0.' + self.text_result.setText(self.x) if __name__ == '__main__': -- Gitee