先决条件:Tkinter介绍, lambda函数
Python提供了多种开发GUI(图形用户界面)的选项。在所有GUI方法中, tkinter是最常用的方法。它是Python随附的Tk GUI工具包的标准Python接口。带有tkinter的Python输出了创建GUI应用程序的最快, 最简单的方法。使用tkinter创建GUI很容易。
创建一个tkinter:
- 导入模块– tkinter
- 创建主窗口(容器)
- 将任意数量的小部件添加到主窗口
- 将事件触发器应用于小部件。
让我们使用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()
输出:
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
评论前必须登录!
注册