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 tocreate 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()

【Python使用Tkinter开发简单GUI计算器】输出:
Python使用Tkinter开发简单GUI计算器

文章图片
Python使用Tkinter开发简单GUI计算器

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

    推荐阅读