个性化阅读
专注于IT技术分析

Python使用Tkinter开发简单GUI计算器

先决条件:Tkinter介绍, lambda函数

Python提供了多种开发GUI(图形用户界面)的选项。在所有GUI方法中, tkinter是最常用的方法。它是Python随附的Tk GUI工具包的标准Python接口。带有tkinter的Python输出了创建GUI应用程序的最快, 最简单的方法。使用tkinter创建GUI很容易。

创建一个tkinter:

  1. 导入模块– tkinter
  2. 创建主窗口(容器)
  3. 将任意数量的小部件添加到主窗口
  4. 将事件触发器应用于小部件。

让我们使用Python Tkinter模块创建一个基于GUI的简单计算器, 该计算器可以执行基本的算术运算加, 减, 乘和除运算。

下面是实现:

# Python program to  create a simple GUI 
# calculator using Tkinter
  
# import everything from tkinter module
from tkinter import *
  
# globally declare the expression variable
expression = ""
  
  
# Function to update expressiom
# in the text entry box
def press(num):
     # point out the global expression variable
     global expression
  
     # concatenation of string
     expression = expression + str (num)
  
     # update the expression by using set method
     equation. set (expression)
  
  
# Function to evaluate the final expression
def equalpress():
     # Try and except statement is used
     # for handling the errors like zero
     # division error etc.
  
     # Put that code inside the try block
     # which may generate the error
     try :
  
         global expression
  
         # eval function evaluate the expression
         # and str function convert the result
         # into string
         total = str ( eval (expression))
  
         equation. set (total)
  
         # initialze the expression variable
         # by empty string
         expression = ""
  
     # if error is generate then handle
     # by the except block
     except :
  
         equation. set ( " error " )
         expression = ""
  
  
# Function to clear the contents
# of text entry box
def clear():
     global expression
     expression = ""
     equation. set ("")
  
  
# Driver code
if __name__ = = "__main__" :
     # create a GUI window
     gui = Tk()
  
     # set the background colour of GUI window
     gui.configure(background = "light green" )
  
     # set the title of GUI window
     gui.title( "Simple Calculator" )
  
     # set the configuration of GUI window
     gui.geometry( "270x150" )
  
     # StringVar() is the variable class
     # we create an instance of this class
     equation = StringVar()
  
     # create the text entry box for
     # showing the expression .
     expression_field = Entry(gui, textvariable = equation)
  
     # grid method is used for placing
     # the widgets at respective positions
     # in table like structure .
     expression_field.grid(columnspan = 4 , ipadx = 70 )
  
     equation. set ( 'enter your expression' )
  
     # create a Buttons and place at a particular
     # location inside the root window .
     # when user press the button, the command or
     # function affiliated to that button is executed .
     button1 = Button(gui, text = ' 1 ' , fg = 'black' , bg = 'red' , command = lambda : press( 1 ), height = 1 , width = 7 )
     button1.grid(row = 2 , column = 0 )
  
     button2 = Button(gui, text = ' 2 ' , fg = 'black' , bg = 'red' , command = lambda : press( 2 ), height = 1 , width = 7 )
     button2.grid(row = 2 , column = 1 )
  
     button3 = Button(gui, text = ' 3 ' , fg = 'black' , bg = 'red' , command = lambda : press( 3 ), height = 1 , width = 7 )
     button3.grid(row = 2 , column = 2 )
  
     button4 = Button(gui, text = ' 4 ' , fg = 'black' , bg = 'red' , command = lambda : press( 4 ), height = 1 , width = 7 )
     button4.grid(row = 3 , column = 0 )
  
     button5 = Button(gui, text = ' 5 ' , fg = 'black' , bg = 'red' , command = lambda : press( 5 ), height = 1 , width = 7 )
     button5.grid(row = 3 , column = 1 )
  
     button6 = Button(gui, text = ' 6 ' , fg = 'black' , bg = 'red' , command = lambda : press( 6 ), height = 1 , width = 7 )
     button6.grid(row = 3 , column = 2 )
  
     button7 = Button(gui, text = ' 7 ' , fg = 'black' , bg = 'red' , command = lambda : press( 7 ), height = 1 , width = 7 )
     button7.grid(row = 4 , column = 0 )
  
     button8 = Button(gui, text = ' 8 ' , fg = 'black' , bg = 'red' , command = lambda : press( 8 ), height = 1 , width = 7 )
     button8.grid(row = 4 , column = 1 )
  
     button9 = Button(gui, text = ' 9 ' , fg = 'black' , bg = 'red' , command = lambda : press( 9 ), height = 1 , width = 7 )
     button9.grid(row = 4 , column = 2 )
  
     button0 = Button(gui, text = ' 0 ' , fg = 'black' , bg = 'red' , command = lambda : press( 0 ), height = 1 , width = 7 )
     button0.grid(row = 5 , column = 0 )
  
     plus = Button(gui, text = ' + ' , fg = 'black' , bg = 'red' , command = lambda : press( "+" ), height = 1 , width = 7 )
     plus.grid(row = 2 , column = 3 )
  
     minus = Button(gui, text = ' - ' , fg = 'black' , bg = 'red' , command = lambda : press( "-" ), height = 1 , width = 7 )
     minus.grid(row = 3 , column = 3 )
  
     multiply = Button(gui, text = ' * ' , fg = 'black' , bg = 'red' , command = lambda : press( "*" ), height = 1 , width = 7 )
     multiply.grid(row = 4 , column = 3 )
  
     divide = Button(gui, text = ' /' , fg = 'black' , bg = 'red' , command = lambda : press( "/" ), height = 1 , width = 7 )
     divide.grid(row = 5 , column = 3 )
  
     equal = Button(gui, text = ' = ' , fg = 'black' , bg = 'red' , command = equalpress, height = 1 , width = 7 )
     equal.grid(row = 5 , column = 2 )
  
     clear = Button(gui, text = 'Clear' , fg = 'black' , bg = 'red' , command = clear, height = 1 , width = 7 )
     clear.grid(row = 5 , column = '1' )
  
     Decimal = Button(gui, text = '.' , fg = 'black' , bg = 'red' , command = lambda : press( '.' ), height = 1 , width = 7 )
     Decimal.grid(row = 6 , column = 0 )
     # start the GUI
     gui.mainloop()

输出:

输入数据
result

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


赞(0) 打赏
未经允许不得转载:srcmini » Python使用Tkinter开发简单GUI计算器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏