本文实例讲述了Python开发的实用计算器。分享给大家供大家参考,具体如下:
实现功能:图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。
1. Python代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Author : Mr.LiuYC
Created on 2014-09-30
E-Mail : liuyanchen0725@gmail.com
Introduction: 简易计算器 实现图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。
'''
from PyQt4 import QtGui,QtCore
import sys , math , string
class Example(QtGui.QWidget):
def __init__( self ,parent = None ):
QtGui.QWidget.__init__( self ,parent = parent)
self .initUI()
self .last = []
def initUI( self ):
list = [ '%' , '**' , 'sqrt' , 'C' , 7 , 8 , 9 , '+' , 4 , 5 , 6 , '-' , 1 , 2 , 3 , '*' , 0 , '.' , '=' , '/' ]
length = len ( list )
for i in xrange (length):
self .button = QtGui.QPushButton( str ( list [i]), self )
self .button.clicked.connect( self .onButtonClick)
x = i % 4
y = i / 4
self .button.move(x * 40 + 10 ,y * 40 + 90 )
self .button.resize( 30 , 30 )
self .lineEdit = QtGui.QLineEdit('', self )
self .lineEdit.move( 10 , 10 )
self .lineEdit.resize( 150 , 70 )
self .setGeometry( 200 , 200 , 170 , 300 )
self .setWindowTitle( 'Quit buttom' )
self .show()
def onButtonClick( self ):
t = self .lineEdit.text()
new = self .sender().text()
self .last.append(new)
print self .last
self .lineEdit.setText(t + new)
if new = = '=' :
result = eval ( str (t))
self .lineEdit.setText( str (result))
if new = = 'C' :
self .lineEdit.setText('')
if new = = 'sqrt' :
self .lineEdit.setText('')
result = math.sqrt(string.atof(t))
self .lineEdit.setText( str (result))
if __name__ = = '__main__' :
app = QtGui.QApplication(sys.argv)
e = Example()
sys.exit(app.exec_())
|
2. calculator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Author : Mr.LiuYC
Created on 2014-09-30
E-Mail : liuyanchen0725@gmail.com
Introduction: 简易计算器 实现图形界面PyQt,输入框,+,—,*,/ ;乘方 ,开方 ,取余,清零。
'''
from PyQt4 import QtGui,QtCore
import sys , math , string
class Example(QtGui.QWidget):
def __init__( self ,parent = None ):
QtGui.QWidget.__init__( self ,parent = parent)
self .initUI()
self .last = []
def initUI( self ):
list = [ '%' , '**' , 'sqrt' , 'C' , 7 , 8 , 9 , '+' , 4 , 5 , 6 , '-' , 1 , 2 , 3 , '*' , 0 , '.' , '=' , '/' ]
length = len ( list )
for i in xrange (length):
self .button = QtGui.QPushButton( str ( list [i]), self )
self .button.clicked.connect( self .onButtonClick)
x = i % 4
y = i / 4
self .button.move(x * 40 + 10 ,y * 40 + 90 )
self .button.resize( 30 , 30 )
self .lineEdit = QtGui.QLineEdit('', self )
self .lineEdit.move( 10 , 10 )
self .lineEdit.resize( 150 , 70 )
self .setGeometry( 200 , 200 , 170 , 300 )
self .setWindowTitle( 'Quit buttom' )
self .show()
def onButtonClick( self ):
t = self .lineEdit.text()
new = self .sender().text()
self .last.append(new)
print self .last
self .lineEdit.setText(t + new)
if new = = '=' :
result = eval ( str (t))
self .lineEdit.setText( str (result))
if new = = 'C' :
self .lineEdit.setText('')
if new = = 'sqrt' :
self .lineEdit.setText('')
result = math.sqrt(string.atof(t))
self .lineEdit.setText( str (result))
if __name__ = = '__main__' :
app = QtGui.QApplication(sys.argv)
e = Example()
sys.exit(app.exec_())
|
3. 运行效果图如下:
希望本文所述对大家Python程序设计有所帮助。