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. 运行效果图如下: