帮我用python用tkinter模块写一个名片管理系统,实现增删改查
时间: 2023-07-20 12:34:12 浏览: 143
学生信息管理系统(tkinter界面带登陆系统,增删改查等)-python
5星 · 资源好评率100%
好的,以下是一个基于 Python 和 Tkinter 模块的名片管理系统示例代码:
```python
from tkinter import *
from tkinter import messagebox
class Card:
def __init__(self, name, phone):
self.name = name
self.phone = phone
class CardManager:
def __init__(self):
self.cards = []
def add_card(self, card):
self.cards.append(card)
messagebox.showinfo("提示", "添加成功!")
def delete_card(self, name):
for card in self.cards:
if card.name == name:
self.cards.remove(card)
messagebox.showinfo("提示", "删除成功!")
return
messagebox.showwarning("警告", "未找到该名片!")
def update_card(self, name, phone):
for card in self.cards:
if card.name == name:
card.phone = phone
messagebox.showinfo("提示", "更新成功!")
return
messagebox.showwarning("警告", "未找到该名片!")
def query_card(self, name):
for card in self.cards:
if card.name == name:
messagebox.showinfo("查询结果", "姓名:{}\n电话:{}".format(card.name, card.phone))
return
messagebox.showwarning("警告", "未找到该名片!")
class CardUI:
def __init__(self, manager):
self.manager = manager
self.init_ui()
def init_ui(self):
self.root = Tk()
self.root.title("名片管理系统")
self.name_label = Label(self.root, text="姓名:")
self.name_label.grid(row=0, column=0)
self.name_entry = Entry(self.root)
self.name_entry.grid(row=0, column=1)
self.phone_label = Label(self.root, text="电话:")
self.phone_label.grid(row=1, column=0)
self.phone_entry = Entry(self.root)
self.phone_entry.grid(row=1, column=1)
self.add_button = Button(self.root, text="添加", command=self.add_card)
self.add_button.grid(row=2, column=0)
self.delete_button = Button(self.root, text="删除", command=self.delete_card)
self.delete_button.grid(row=2, column=1)
self.update_button = Button(self.root, text="更新", command=self.update_card)
self.update_button.grid(row=2, column=2)
self.query_button = Button(self.root, text="查询", command=self.query_card)
self.query_button.grid(row=2, column=3)
def add_card(self):
name = self.name_entry.get().strip()
phone = self.phone_entry.get().strip()
if name == "" or phone == "":
messagebox.showwarning("警告", "姓名和电话不能为空!")
return
card = Card(name, phone)
self.manager.add_card(card)
def delete_card(self):
name = self.name_entry.get().strip()
if name == "":
messagebox.showwarning("警告", "姓名不能为空!")
return
self.manager.delete_card(name)
def update_card(self):
name = self.name_entry.get().strip()
phone = self.phone_entry.get().strip()
if name == "" or phone == "":
messagebox.showwarning("警告", "姓名和电话不能为空!")
return
self.manager.update_card(name, phone)
def query_card(self):
name = self.name_entry.get().strip()
if name == "":
messagebox.showwarning("警告", "姓名不能为空!")
return
self.manager.query_card(name)
def run(self):
self.root.mainloop()
if __name__ == '__main__':
manager = CardManager()
ui = CardUI(manager)
ui.run()
```
在这个示例中,`Card` 类表示名片信息,`CardManager` 类表示名片管理系统,其中包含添加名片、删除名片、更新名片信息、查询名片信息等方法。`CardUI` 类表示名片管理系统的用户界面,使用 Tkinter 模块创建了一个简单的 GUI 界面,包含姓名输入框、电话输入框、添加按钮、删除按钮、更新按钮、查询按钮等控件。
运行上述代码将打开一个名片管理系统的界面,您可以在此界面上添加、删除、更新和查询名片信息。注意,在删除、更新和查询名片信息时,需要输入姓名信息。如果未找到该名片,将会弹出警告框提示用户。
阅读全文