欢迎访问宙启技术站
智能推送

在tkinter中使用ScrolledText()控件实现通讯录管理系统

发布时间:2024-01-20 20:28:26

在Tkinter中,可以使用ScrolledText()控件实现一个简单的通讯录管理系统。ScrolledText()是一个文本编辑框控件,可以在其中显示和编辑多行文本。下面是一个具体的例子:

import tkinter as tk
from tkinter import scrolledtext

class ContactManagerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("通讯录管理系统")

        self.scrolltext = scrolledtext.ScrolledText(root, width=60, height=10)
        self.scrolltext.pack(pady=10)

        self.btn_save = tk.Button(root, text="保存", command=self.save_contacts)
        self.btn_save.pack(pady=5)

        self.btn_load = tk.Button(root, text="加载", command=self.load_contacts)
        self.btn_load.pack(pady=5)

    def save_contacts(self):
        contacts = self.scrolltext.get("1.0", tk.END)
        with open("contacts.txt", "w") as f:
            f.write(contacts)

    def load_contacts(self):
        try:
            with open("contacts.txt", "r") as f:
                contacts = f.read()
                self.scrolltext.delete("1.0", tk.END)
                self.scrolltext.insert(tk.END, contacts)
        except FileNotFoundError:
            print("通讯录文件不存在")

root = tk.Tk()
app = ContactManagerApp(root)
root.mainloop()

在这个例子中,我们首先导入scrolledtext模块,然后定义了一个名为ContactManagerApp的类。在这个类的初始化方法中,我们创建了一个Tkinter窗口,并为窗口设置了标题。然后使用ScrolledText()控件创建一个可滚动的文本框,并设置了它的宽度和高度,然后将其显示在窗口上。

接下来,我们创建了两个按钮:一个是保存按钮,另一个是加载按钮。保存按钮的command回调函数是save_contacts(),点击该按钮将保存原始通讯录数据。加载按钮的command回调函数是load_contacts(),点击该按钮将从文件中加载上次保存的通讯录数据并显示在文本框中。

save_contacts()方法中,我们首先使用get()方法获取文本框中的内容,然后将其保存到名为contacts.txt的文件中。

load_contacts()方法中,我们首先尝试打开contacts.txt文件,并读取其中的内容。如果文件存在,我们清除文本框中的内容并将读取到的通讯录数据插入到文本框中,以便用户查看。如果文件不存在,我们打印一条错误消息。

最后,我们创建了一个Tk()实例,并将其传递给ContactManagerApp类的构造函数,然后启动Tkinter的消息循环(mainloop)以处理事件。

使用这个例子,你可以通过在文本框中输入通讯录信息,然后点击保存按钮将其保存到文件中。当你下次启动程序时,你可以点击加载按钮将保存的通讯录信息加载到文本框中。