- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python Tkinter实现简易计算器功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# -*- coding: utf-8 -*-
#author: Cullen
#import the module
from
Tkinter
import
*
import
tkFont
import
os
from
functools
import
partial
from
PIL
import
Image, ImageTk
def
get_input(entry, argu):
entry.insert(END, argu)
def
backspace(entry):
input_len
=
len
(entry.get())
entry.delete(input_len
-
1
)
def
clear(entry):
entry.delete(
0
, END)
def
calc(entry):
input
=
entry.get()
output
=
str
(
eval
(
input
.strip()))
clear(entry)
entry.insert(END, output)
def
cal():
root
=
Tk()
root.title(
"Calc"
)
root.resizable(
0
,
0
)
entry_font
=
tkFont.Font(size
=
12
)
entry
=
Entry(root, justify
=
"right"
, font
=
entry_font)
entry.grid(row
=
0
, column
=
0
, columnspan
=
4
, sticky
=
N
+
W
+
S
+
E, padx
=
5
, pady
=
5
)
button_font
=
tkFont.Font(size
=
10
, weight
=
tkFont.BOLD)
button_bg
=
'#D5E0EE'
button_active_bg
=
'#E5E35B'
myButton
=
partial(Button, root, bg
=
button_bg, padx
=
10
, pady
=
3
, activebackground
=
button_active_bg)
button7
=
myButton(text
=
'7'
, command
=
lambda
: get_input(entry,
'7'
))
button7.grid(row
=
1
, column
=
0
, pady
=
5
)
button8
=
myButton(text
=
'8'
, command
=
lambda
: get_input(entry,
'8'
))
button8.grid(row
=
1
, column
=
1
, pady
=
5
)
button9
=
myButton(text
=
'9'
, command
=
lambda
: get_input(entry,
'9'
))
button9.grid(row
=
1
, column
=
2
, pady
=
5
)
button10
=
myButton(text
=
'+'
, command
=
lambda
: get_input(entry,
'+'
))
button10.grid(row
=
1
, column
=
3
, pady
=
5
)
button4
=
myButton(text
=
'4'
, command
=
lambda
: get_input(entry,
'4'
))
button4.grid(row
=
2
, column
=
0
, pady
=
5
)
button5
=
myButton(text
=
'5'
, command
=
lambda
: get_input(entry,
'5'
))
button5.grid(row
=
2
, column
=
1
, pady
=
5
)
button6
=
myButton(text
=
'6'
, command
=
lambda
: get_input(entry,
'6'
))
button6.grid(row
=
2
, column
=
2
, pady
=
5
)
button11
=
myButton(text
=
'-'
, command
=
lambda
: get_input(entry,
'-'
))
button11.grid(row
=
2
, column
=
3
, pady
=
5
)
button1
=
myButton(text
=
'1'
, command
=
lambda
: get_input(entry,
'1'
))
button1.grid(row
=
3
, column
=
0
, pady
=
5
)
button2
=
myButton(text
=
'2'
, command
=
lambda
: get_input(entry,
'2'
))
button2.grid(row
=
3
, column
=
1
, pady
=
5
)
button3
=
myButton(text
=
'3'
, command
=
lambda
: get_input(entry,
'3'
))
button3.grid(row
=
3
, column
=
2
, pady
=
5
)
button12
=
myButton(text
=
'*'
, command
=
lambda
: get_input(entry,
'*'
))
button12.grid(row
=
3
, column
=
3
, pady
=
5
)
button0
=
myButton(text
=
'0'
, command
=
lambda
: get_input(entry,
'0'
))
button0.grid(row
=
4
, column
=
0
, columnspan
=
2
, padx
=
3
, pady
=
5
, sticky
=
N
+
S
+
E
+
W)
button13
=
myButton(text
=
'.'
, command
=
lambda
: get_input(entry,
'.'
))
button13.grid(row
=
4
, column
=
2
, pady
=
5
)
button14
=
Button(root, text
=
'/'
, bg
=
button_bg, padx
=
10
, pady
=
3
,
command
=
lambda
: get_input(entry,
'/'
))
button14.grid(row
=
4
, column
=
3
, pady
=
5
)
button15
=
Button(root, text
=
'<-'
, bg
=
button_bg, padx
=
10
, pady
=
3
,
command
=
lambda
: backspace(entry), activebackground
=
button_active_bg)
button15.grid(row
=
5
, column
=
0
, pady
=
5
)
button16
=
Button(root, text
=
'C'
, bg
=
button_bg, padx
=
10
, pady
=
3
,
command
=
lambda
: clear(entry), activebackground
=
button_active_bg)
button16.grid(row
=
5
, column
=
1
, pady
=
5
)
button17
=
Button(root, text
=
'='
, bg
=
button_bg, padx
=
10
, pady
=
3
,
command
=
lambda
: calc(entry), activebackground
=
button_active_bg)
button17.grid(row
=
5
, column
=
2
, columnspan
=
2
, padx
=
3
, pady
=
5
, sticky
=
N
+
S
+
E
+
W)
root.mainloop()
if
__name__
=
=
'__main__'
:
cal()
|
下面是运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/wangyiyan315/article/details/19435081 。
最后此篇关于Python Tkinter实现简易计算器功能的文章就讲到这里了,如果你想了解更多关于Python Tkinter实现简易计算器功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在 How to make a Tkinter window jump to the front? 中提出的问题之后的一个问题 我希望有一个顶层窗口(我用它来导航我的其他主窗口)总是在前面。但我希望它
有没有办法在 Tkinter 中保持小部件(特别是图像)的堆叠顺序一致?例如,我可能在 Canvas 上的同一位置有两个矩形、两个三角形和一个圆。圆圈移动到最后一次点击鼠标的地方,但我总是希望它被绘制
这是一个简单的 GUI 程序,用于创建 5x16 按钮矩阵。 from tkinter import * root = Tk() button = [[0 for x in range(16)] fo
有一个错误:“AttributeError: module 'tkinter' has no attribute 'messagebox'” 即使 import tkinter 一开始就已经给出了,为
我知道 menu.tk_popup() 可用于在特定坐标处打开上下文菜单,但也不知道如何从中打开子菜单,如果这有意义的话。这是我编写的代码: import tkinter as tk root = t
我正在尝试在禁用自动换行和水平滚动条的文本窗口中书写,如下所示: root = Toplevel() root.geometry("%dx%d+0+0" % (350,400)) af=Frame(r
已经将文本变量分配给小部件后,如何将其删除? widget.config(textvariable=None)只是不工作。在谷歌或这里找不到任何东西。 最佳答案 将您的变量分配给一个空字符串以实现此目
Jython 支持 Tkinter 吗?如果我用 Python 编写一个程序并放一个 使用 Tkinter 的 GUI 前端,做同样的事情有多难 Jython 中的程序?或者对于 Jython GUI
因此,我尝试创建一个 tkinter 窗口,显示当前时间和日期以及自定义短语。不过,我遇到的问题是,我似乎无法在第二天刷新日期。 我可以传递截至运行代码时的当前日期,但之后它变为静态。 这是我目前的程
我的理解是在初始化 __init__ 中的所有框架和小部件之后方法,tkinter 窗口会调整大小以适合所有这些组件。 我想将窗口的初始化大小设置为其最小大小。我希望能够最大化并放大窗口,但我从不希望
此代码仅水平居中,如何使进度条也垂直居中? import Tkinter import ttk root = Tkinter.Tk() root.geometry("=500x500") root.p
使用 Python 2.7 和 Tkinter 模块,我创建了一个菜单按钮并为其分配了一个菜单。现在每次我在特定位置发布菜单时,菜单的宽度都会根据字符数自动设置。有没有办法在菜单小部件中设置静态宽度?
我想将我的 tkinter 应用程序的主题更改为 clam。 代码是什么,我把它放在哪里?我试过了: from tkinter import * from tkinter.ttk import * s
我有以下代码: from Tkinter import * from urllib import urlretrieve import webbrowser import ttk def get_la
我知道,如果我将滚动条控制的框架绑定(bind)到函数 ( onFrameConfigure ),您可以获得滚动条位置,如下所示:self.calendar_frame.bind("", self.o
许多网站都说菜单小部件有一个选项“字体”,但我一直无法设置它。系统是在 Windows 8.1 中运行的 Python 3.5。脚本开始: 从 tkinter 导入 * 根 = Tk() root.g
我正在阅读本教程,它帮助我同时学习 tkinter 和 wxWidgets,但我想深入挖掘,所以想知道哪个 GUI 工具更适合深入学习,为什么? 最佳答案 不可能说哪个“更好”。两者均可用于最常见的用
看书学python,tkinter.END用在一段代码里不用解释 import tkinter def count(text, out_data): """ Update out_data w
我正在尝试使用 Python 2.7 将 Tkinter 导入到我的项目中,但我收到了错误: ImportError: No module named tkinter 在有人说之前,我已经尝试了“Tk
当我回答 Tkinter 问题时,我通常会尝试自己运行代码,但有时我会收到此错误: Traceback (most recent call last): File "C:\Python27\pyg
我是一名优秀的程序员,十分优秀!