Python使用Tkinter的ToDo GUI应用程序

【Python使用Tkinter的ToDo GUI应用程序】先决条件:Tkinter简介
Python提供了多种开发GUI(图形用户界面)的选项。在所有GUI方法中, tkinter是最常用的方法。在本文中, 我们将通过分步指南学习如何使用Tkinter创建ToDo GUI应用程序。
创建一个tkinter:

  • 导入模块– tkinter
  • 创建主窗口(容器)
  • 将任意数量的小部件添加到主窗口。
  • 将事件触发器应用于小部件。
让我们创建一个基于GUI的简单ToDo应用程序, 你可以在其中添加和删除任务。
下面是实现:
# import all functions from the tkinter from tkinter import *# import messagebox class from tkinter from tkinter import messagebox# global list is declare for storing all the task tasks_list = []# global variable is declare for couting the task counter = 1# Function for checking input error when # empty input is given in task field def inputError() :# check for enter task field is empty or not if enterTaskField.get() = = "" :# show the error message messagebox.showerror( "Input Error" )return 0return 1# Function for clearing the contents # of task number text field def clear_taskNumberField() :# clear the content of task number text field taskNumberField.delete( 0.0 , END)# Function for clearing the contents # of task entry field def clear_taskField() :# clear the content of task field entry box enterTaskField.delete( 0 , END)# Function for inserting the contents # from the task entry field to the text area def insertTask():global counter# check for error value = http://www.srcmini.com/inputError()# if error occur then return if value = = 0 : return# get the task string concatenating # with new line character content = enterTaskField.get() +"\n"# store task in the list tasks_list.append(content)# insert content of task entry field to the text area # add task one by one in below one by one TextArea.insert( 'end -1 chars' , "[ " + str (counter) + " ] " + content)# incremented counter + = 1# function calling for deleting the content of task field clear_taskField()# function for deleting the specified task def delete() :global counter# handling the empty task error if len (tasks_list) = = 0 : messagebox.showerror( "No task" ) return# get the task number, which is required to delete number = taskNumberField.get( 1.0 , END)# checking for input error when # empty input in task number field if number = = "\n" : messagebox.showerror( "input error" ) returnelse : task_no = int (number)# function calling for deleting the # content of task number field clear_taskNumberField()# deleted specified task from the list tasks_list.pop(task_no - 1 )# decremented counter - = 1# whole content of text area widget is deleted TextArea.delete( 1.0 , END)# rewriting the task after deleting one task at a time for i in range ( len (tasks_list)) : TextArea.insert( 'end -1 chars' , "[ " + str (i + 1 ) + " ] " + tasks_list[i])# 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( "ToDo App" )# set the configuration of GUI window gui.geometry( "250x300" )# create a label : Enter Your Task enterTask = Label(gui, text = "Enter Your Task" , bg = "light green" )# create a text entry box # for typing the task enterTaskField = Entry(gui)# create a Submit Button and place into the root window # when user press the button, the command or # function affiliated to that button is executed Submit = Button(gui, text = "Submit" , fg = "Black" , bg = "Red" , command = insertTask)# create a text area for the root # with lunida 13 font # text area is for writing the content TextArea = Text(gui, height = 5 , width = 25 , font = "lucida 13" )# create a label : Delete Task Number taskNumber = Label(gui, text = "Delete Task Number" , bg = "blue" )taskNumberField = Text(gui, height = 1 , width = 2 , font = "lucida 13" )# create a Delete Button and place into the root window # when user press the button, the command or # function affiliated to that button is executed . delete = Button(gui, text = "Delete" , fg = "Black" , bg = "Red" , command = delete)# create a Exit Button and place into the root window # when user press the button, the command or # function affiliated to that button is executed . Exit = Button(gui, text = "Exit" , fg = "Black" , bg = "Red" , command = exit)# grid method is used for placing # the widgets at respective positions # in table like structure. enterTask.grid(row = 0 , column = 2 )# ipadx attributed set the entry box horizontal size enterTaskField.grid(row = 1 , column = 2 , ipadx = 50 )Submit.grid(row = 2 , column = 2 )# padx attributed provide x-axis margin # from the root window to the widget. TextArea.grid(row = 3 , column = 2 , padx = 10 , sticky = W)taskNumber.grid(row = 4 , column = 2 , pady = 5 )taskNumberField.grid(row = 5 , column = 2 )# pady attributed provide y-axis # margin from the widget. delete.grid(row = 6 , column = 2 , pady = 5 )Exit.grid(row = 7 , column = 2 )# start the GUI gui.mainloop()

输出如下:
Python使用Tkinter的ToDo GUI应用程序

文章图片
Python使用Tkinter的ToDo GUI应用程序

文章图片
Python使用Tkinter的ToDo GUI应用程序

文章图片
Python使用Tkinter的ToDo GUI应用程序

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

    推荐阅读