先决条件:Tkinter介绍, lambda函数
Python提供了多种开发GUI(图形用户界面)的选项。在所有GUI方法中, tkinter是最常用的方法。它是Python随附的Tk GUI工具包的标准Python接口。带有tkinter的Python输出了创建GUI应用程序的最快, 最简单的方法。使用tkinter创建GUI很容易。
创建一个tkinter:
- 导入模块– tkinter
- 创建主窗口(容器)
- 将任意数量的小部件添加到主窗口
- 将事件触发器应用于小部件。
下面是实现:
# 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 DS课程。
推荐阅读
- Python集合update()函数用法示例
- Python Kivy中的滑块小部件用法示例
- Python使用.kv文件的滑块小部件
- Python使用OpenCV进行微笑检测示例
- Python根据元素的长度对列表进行排序
- Python Kivy中的微调小部件用法示例
- 开源demo| 你画我猜——让你的生活更有趣
- sysbench压测Oracle(安装与使用示例)
- Python轻松制作一个ssh登录器