python通讯录管理系统txt用窗体体现
时间: 2023-07-03 11:14:42 浏览: 115
好的,我可以为您提供一些参考代码和思路。首先,您可以使用Python的Tkinter库创建窗体界面。然后,您需要使用Python的文件操作功能将通讯录数据保存到txt文件中,并且在程序启动时读取txt文件中的数据,显示在窗体上。
以下是一个可能的实现方式,仅供参考:
```python
import tkinter as tk
class Contact:
def __init__(self, name, phone):
self.name = name
self.phone = phone
class ContactManager:
def __init__(self):
self.contacts = []
self.load_contacts()
def add_contact(self, name, phone):
contact = Contact(name, phone)
self.contacts.append(contact)
self.save_contacts()
def remove_contact(self, contact):
self.contacts.remove(contact)
self.save_contacts()
def get_contacts(self):
return self.contacts
def load_contacts(self):
try:
with open("contacts.txt", "r") as f:
for line in f.readlines():
name, phone = line.strip().split(",")
self.contacts.append(Contact(name, phone))
except FileNotFoundError:
pass
def save_contacts(self):
with open("contacts.txt", "w") as f:
for contact in self.contacts:
f.write(f"{contact.name},{contact.phone}\n")
class ContactWindow:
def __init__(self, contact_manager):
self.contact_manager = contact_manager
self.window = tk.Tk()
self.window.geometry("300x300")
self.window.title("Contact Manager")
self.name_label = tk.Label(self.window, text="Name:")
self.name_label.pack()
self.name_entry = tk.Entry(self.window)
self.name_entry.pack()
self.phone_label = tk.Label(self.window, text="Phone:")
self.phone_label.pack()
self.phone_entry = tk.Entry(self.window)
self.phone_entry.pack()
self.add_button = tk.Button(self.window, text="Add Contact", command=self.add_contact)
self.add_button.pack()
self.contacts_label = tk.Label(self.window, text="Contacts:")
self.contacts_label.pack()
self.contacts_listbox = tk.Listbox(self.window)
self.contacts_listbox.pack()
self.remove_button = tk.Button(self.window, text="Remove Contact", command=self.remove_contact)
self.remove_button.pack()
self.update_contacts()
self.window.mainloop()
def update_contacts(self):
self.contacts_listbox.delete(0, tk.END)
contacts = self.contact_manager.get_contacts()
for contact in contacts:
self.contacts_listbox.insert(tk.END, f"{contact.name} ({contact.phone})")
def add_contact(self):
name = self.name_entry.get()
phone = self.phone_entry.get()
if name and phone:
self.contact_manager.add_contact(name, phone)
self.update_contacts()
def remove_contact(self):
selection = self.contacts_listbox.curselection()
if selection:
index = selection[0]
contact = self.contact_manager.get_contacts()[index]
self.contact_manager.remove_contact(contact)
self.update_contacts()
if __name__ == "__main__":
contact_manager = ContactManager()
contact_window = ContactWindow(contact_manager)
```
在这个示例中,我们首先定义了一个Contact类来表示一个联系人。然后,我们创建了一个ContactManager类来管理联系人列表,并且在程序启动时从txt文件中读取联系人数据。接着,我们使用Tkinter库创建了一个ContactWindow类来显示通讯录的窗体界面,并且在窗体中添加了文本框、按钮和列表框等控件来实现添加、删除和显示联系人的功能。最后,我们在主程序中创建了一个ContactManager对象和一个ContactWindow对象来运行整个程序。
请注意,这只是一个简单的示例,实际的窗体界面和通讯录管理功能需要根据您的具体需求进行修改和完善。
阅读全文