使用 tkinter 实现 gui 版通讯录管理系统
时间: 2023-12-15 12:03:37 浏览: 204
使用 Python 和 Tkinter 的基于 GUI 的图书馆管理系统源码+文档说明
好的,下面是一个简单的 tkinter 实现的通讯录管理系统。代码注释已经尽可能详细,希望对你有帮助。
``` python
import tkinter as tk
from tkinter import messagebox
# 定义通讯录类
class AddressBook:
def __init__(self):
self.contacts = []
# 添加联系人
def add_contact(self, name, phone):
self.contacts.append({'name': name, 'phone': phone})
# 删除联系人
def delete_contact(self, name):
for contact in self.contacts:
if contact['name'] == name:
self.contacts.remove(contact)
return True
return False
# 查找联系人
def find_contact(self, name):
for contact in self.contacts:
if contact['name'] == name:
return contact
return None
# 定义 GUI 类
class GUI:
def __init__(self, master):
self.master = master
self.master.title('通讯录管理系统')
self.master.geometry('400x300')
# 创建通讯录对象
self.address_book = AddressBook()
# 创建控件
self.label_name = tk.Label(self.master, text='姓名:')
self.label_name.grid(row=0, column=0, padx=10, pady=10)
self.entry_name = tk.Entry(self.master)
self.entry_name.grid(row=0, column=1, padx=10, pady=10)
self.label_phone = tk.Label(self.master, text='电话:')
self.label_phone.grid(row=1, column=0, padx=10, pady=10)
self.entry_phone = tk.Entry(self.master)
self.entry_phone.grid(row=1, column=1, padx=10, pady=10)
self.btn_add = tk.Button(self.master, text='添加', command=self.add_contact)
self.btn_add.grid(row=2, column=0, padx=10, pady=10)
self.btn_delete = tk.Button(self.master, text='删除', command=self.delete_contact)
self.btn_delete.grid(row=2, column=1, padx=10, pady=10)
self.btn_find = tk.Button(self.master, text='查找', command=self.find_contact)
self.btn_find.grid(row=2, column=2, padx=10, pady=10)
self.text_result = tk.Text(self.master)
self.text_result.grid(row=3, column=0, columnspan=3, padx=10, pady=10)
# 添加联系人
def add_contact(self):
name = self.entry_name.get()
phone = self.entry_phone.get()
if name and phone:
self.address_book.add_contact(name, phone)
messagebox.showinfo('提示', '添加成功!')
else:
messagebox.showerror('错误', '姓名和电话不能为空!')
self.clear_entry()
# 删除联系人
def delete_contact(self):
name = self.entry_name.get()
if name:
result = self.address_book.delete_contact(name)
if result:
messagebox.showinfo('提示', '删除成功!')
else:
messagebox.showwarning('警告', '该联系人不存在!')
else:
messagebox.showerror('错误', '姓名不能为空!')
self.clear_entry()
# 查找联系人
def find_contact(self):
name = self.entry_name.get()
if name:
contact = self.address_book.find_contact(name)
if contact:
self.text_result.delete('1.0', tk.END)
self.text_result.insert(tk.END, f"姓名:{contact['name']}\n电话:{contact['phone']}")
else:
messagebox.showwarning('警告', '该联系人不存在!')
else:
messagebox.showerror('错误', '姓名不能为空!')
self.clear_entry()
# 清空输入框
def clear_entry(self):
self.entry_name.delete(0, tk.END)
self.entry_phone.delete(0, tk.END)
if __name__ == '__main__':
root = tk.Tk()
app = GUI(root)
root.mainloop()
```
运行代码后会弹出一个窗口,可以在窗口中输入联系人的姓名和电话,然后点击“添加”按钮将联系人添加到通讯录中。点击“删除”按钮可以删除指定姓名的联系人,点击“查找”按钮可以查找指定姓名的联系人。查找结果会显示在窗口下方的文本框中。如果姓名或电话为空,或者要删除或查找的联系人不存在,会弹出相应的提示框。
阅读全文