Python Tkinter实现简易计算器功能

闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次。

# -*- 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()

下面是运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2018-01-29

python3使用tkinter实现ui界面简单实例

复制代码 代码如下: import timeimport tkinter as tk class Window:    def __init__(self, title='nms', width=300, height=120, staFunc=bool, stoFunc=bool):        self.w = width        self.h = height        self.stat = True        self.staFunc = staFunc       

Python实现模拟时钟代码推荐

Python实现模拟时钟代码推荐 # coding=utf8 import sys, pygame, math, random from pygame.locals import * from datetime import datetime, date, time def print_text(font, x, y, text, color=(255,255,255)): imgtext = font.render(text, True, color) screen.blit(imgtext,

Python+tkinter使用80行代码实现一个计算器实例

本文主要探索的是使用Python+tkinter编程实现一个简单的计算器代码示例,具体如下. 闲话不说,直奔主题.建议大家跟着敲一遍代码,体会一下代码复用.字符串方法的运用和动态创建组件的妙处,然后在这个框架的基础上进行补充和发挥. 选择任何一款Python开发环境,创建一个程序文件,命名为tkinter_Calculator.pyw,然后编写下面的代码: 1)导入标准库re和tkinter,创建并简单设置应用主程序,在窗口顶部放置一个只读的文本框用来显示信息. 2)编写计算器上各种按钮的通用处

python使用Tkinter实现在线音乐播放器

本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数据,解析数据 (2)涉及到多线程的问题未解决,一个软件默认打开一个线程,当播放歌曲时,显示界面就会卡掉,导致python停止工作 代码: #coding=utf-8 from Tkinter import * import tkMessageBox import urllib import json

Python tkinter实现的图片移动碰撞动画效果【附源码下载】

本文实例讲述了Python tkinter实现的图片移动碰撞动画效果.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- import time try: from tkinter import * except ImportError: #Python 2.x PythonVersion = 2 from Tkinter import * from tkFont import Font fro

python+tkinter编写电脑桌面放大镜程序实例代码

本文讲述的是通过python+tkinter编写一个简单桌面放大镜的代码示例,具体如下. 代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角. 主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像. 建议大家照着代码敲一遍,然后运行试试.代码有一点点小瑕疵,试着发现并尝试解决. 总结 以上就是本文关于Python+tkinter编写电脑桌面放大镜程序实例代码的全部内容,希望对大家有所帮助.感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指

Python Tkinter模块实现时钟功能应用示例

本文实例讲述了Python Tkinter模块实现时钟功能.分享给大家供大家参考,具体如下: 本机测试效果: 完整代码: # coding=utf-8 from Tkinter import * import _tkinter import math import time from threading import Thread class Clock: def __init__(self, master, x, y, width, height, radius): ''' :param ma

Python3用tkinter和PIL实现看图工具

需求 想做看图工具的,必然要支持jpg.png等常见格式,但tkinter是个纯粹的GUI库,不像GTK.QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的看图功能 在python生态系统里,最常用的图像处理库是PIL Python3下库的安装 这两个库在python3下跟python2有一定差异: tkinter首字母变成小写 PIL官方还不支持Python3,但有个fork叫Pillow,可以替代官方并且接口保持不变,需要pip install P

Python使用Tkinter实现机器人走迷宫

这本是课程的一个作业研究搜索算法,当时研究了一下Tkinter,然后写了个很简单的机器人走迷宫的界面,并且使用了各种搜索算法来进行搜索,如下图: 使用A*寻找最优路径: 由于时间关系,不分析了,我自己贴代码吧.希望对一些也要用Tkinter的人有帮助. from Tkinter import * from random import * import time import numpy as np import util class Directions: NORTH = 'North' SOU

python使用turtle库绘制时钟

Python函数库众多,而且在不断更新,所以学习这些函数库最有效的方法,就是阅读Python官方文档.同时借助Google和百度. 本文介绍的turtle库对应的官方文档地址 绘制动态钟表的基本思路如下(面向对象的编程): 使用5个turtle对象 1个turtle:绘制外表盘 3个turtle:模拟表针行为 1个turtle:输出表盘上文字 根据实时时间使用ontimer()函数更新表盘画面,显示效果如下: 相关函数的使用在程序中进行了详细的注释,代码如下: # -*- coding: utf

python3.3使用tkinter开发猜数字游戏示例

利用这个小游戏可以学习一下ython3.3中tkinter的使用方法 复制代码 代码如下: # -*- coding: utf-8 -*-import tkinter as tkimport sysimport randomimport re number = random.randint(0,1024)running = Truenum = 0nmaxn = 1024nminn = 0 def eBtnClose(event):    root.destroy() def eBtnGuess(

Java实现的猜数字游戏示例

本文实例讲述了Java实现的猜数字游戏.分享给大家供大家参考,具体如下: 这里演示一段java语言猜数字代码,流程如下: 系统随机生成0-9中的不重复四位数字. 然后用户输入四个数字 如果数字对了,位置不对 则显示 nB,n是有几个是位置对的. 如果数字对了,位置也是对的 则显示mA,m代表有几个数字是正确位置上的. 例如:  生成的是0369    用户输入的是0396 则显示2A2B,两个位置是正确并且数字正确的,另外两个是数字正确,位置不正确的. Java代码: package com.e

python3实现猜数字游戏

本文实例为大家分享了python3实现猜数字游戏的具体代码,供大家参考,具体内容如下 需求目标: 需求:猜数字游戏 1: 开始游戏产生一个1~100随机数 2: 用户输入,游戏根据输入值提示大或者小 3: 用户根据提示继续输入,知道猜中为止 4: 如果用户输入错误,程序可以处理异常. 代码如下: # coding=utf-8 import random num = random.randint(0, 100) while True: try: guess = int(input("Enter 1

如何利用Python开发一个简单的猜数字游戏

前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(high)"还是"小(low)",如此往复直到玩家猜对数字. 准备好Python3 首先,需要在计算机上安装Python.可以从Python官网下载并安装.本教程需要使用最新版的Python 3(版本3.x.x). 确保选中将Python添加到PATH变量的框.如果不这样做,将很难运行该程序.

基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能

描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击"确定",然后后台会自动生成一个与游戏等级匹配的"神秘数字",游戏玩家在文本框内输入数字,再点击文本框旁边的"确定",即可比较玩家所猜数字是否就是"神秘数字". 游戏界面: 源代码: 代码1: guessNumberGame.py (界面代码) # -*-

Python版的文曲星猜数字游戏代码

复制代码 代码如下: # -*- coding: utf-8 -*- import random #数字类class NumberItem: #数字个数    _GUESS_NUMBER_COUNT_ = 4 def __init__(self):        self._num_ = [] #长度是否标准        def IsFormat(self):        return self._num_.__len__() == self._GUESS_NUMBER_COUNT_ #生成

python实现的简单猜数字游戏

本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用的次数越少成绩越好. import random n = random.randint(1, 99) guess = int(raw_input("Enter an integer from 1 to 99: ")) while n != "guess": print

js实现一个猜数字游戏

看你需要猜几次才能猜到那个正确的数字! 效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>猜数字游戏</title> <script type="text/javascript" cha

java实现的简单猜数字游戏代码

本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 具体代码如下: 复制代码 代码如下: import java.util.InputMismatchException; import java.util.Scanner; public class Main {         public static void main(String[] args) {                 // 产生一个随机数                 int number = (in

基于vue组件实现猜数字游戏

本文实例为大家分享了vue猜数字游戏的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <head> <meta charset="UTF-8"> <title>vue组件猜数字游戏</title> <script src="js/vue.js"></script> </head> <body> <div id