示例代码 来自:https://github.com/Dvlv/Tkinter-By-Example
# -*- coding: utf-8 -*-
"""
Created on Fri Aug 14 13:21:57 2020
@author: Roy
"""
#导入库并定义名称
import tkinter as tk
#定义Todo,继承自tk,TK
class Todo(tk.Tk):
def __init__(self,tasks=None):
#这里使用使用super调用父类的所有属性和方法
super().__init__()
#task不存在则定义task,有则加入task
if not tasks:
self.tasks = []
else:
self.tasks =tasks
#设置窗口大小和标题
self.title('To-Do App v1')
self.geometry('300x400')
#将标签加入到task中
todo1 =tk.Label(self,text='Add Items Here',bg ='lightgrey',fg='black',pady=10)
self.tasks.append(todo1)
for task in self.tasks:
task.pack(side=tk.TOP,fill = tk.X)
#设置一各窗口来输入task文本内容
self.task_create = tk.Text(self,height=3,bg = 'white',fg='black')
self.task_create.pack(side = tk.BOTTOM,fill = tk.X)
#指定控件焦点,选择窗口则焦点聚集在输入框
self.task_create.focus_set()
#把添加task和回车键进行事件绑定
self.bind('<Return>',self.add_task)
self.colour_schemes = [{"bg": "lightgrey", "fg": "black"}, {"bg": "grey", "fg": "white"}]
def add_task(self, event=None):
#取出输入框文本,去前后空格
task_text = self.task_create.get(1.0,tk.END).strip()
if len(task_text) > 0:
new_task = tk.Label(self, text=task_text, pady=10)
#背景颜色选取,'_,'代表选取集合中后半部分的余数
_,task_style_choice = divmod(len(self.tasks), 2)
#选取颜色列表的第一个颜色字典,设置列表背景颜色和前景颜色
my_scheme_choice = self.colour_schemes[task_style_choice]
new_task.configure(bg=my_scheme_choice["bg"])
new_task.configure(fg=my_scheme_choice["fg"])
new_task.pack(side=tk.TOP, fill=tk.X)
#把task加入tasks中以便背景颜色的计数保持更新
self.tasks.append(new_task)
#清除输入文本框的内容
self.task_create.delete(1.0, tk.END)
#主函数和使窗口常驻
if __name__ == "__main__":
todo = Todo()
todo.mainloop()