0

我试图从 ttk.Notebook 访问文本内容。

我阅读了未知数量的文本文件(<20),并为每个 .txt 文件创建了一个新选项卡。并将 .txt 的内容添加到每个选项卡的文本小部件中。

os.chdir('C://Users//Public//Documents')
    myNotes = glob.glob('*.txt')
    myNotes.append('+')
    
    self.notebook = ttk.Notebook(self.master)
    for files in myNotes:
        if files != '+':
            with open('C://Users//Public//Documents//'+files,'r') as f:
                value = f.read()
        else:
            value=''
        self.notebookTab = ttk.Frame(self.notebook)
        self.notebook.add(self.notebookTab, text=files)
        self.text = Text(self.notebookTab, bd=0, wrap='word')
        self.text.pack(fill='both', expand=True)
        self.text.insert('1.0', value)
self.notebook.pack(fill='both', expand=True)

我可以通过以下方式获取活动选项卡的名称(例如文本文件的名称):

activeTabName = self.notebook.tab(self.notebook.select(), "text")

但我不知道如何获取与活动选项卡关联的文本小部件的文本。我喜欢完成的是能够修改一个或多个文本文件的内容,并将新内容保存到正确的 .txt 文件中。

有人有想法么?

4

1 回答 1

0

我找到了一种方法来实现我想做的事情。

我将我的文本小部件保存在一个列表中。然后从选项卡中获取索引并从我的列表中获取该索引。例如:

self.textLista = []
...
self.textLista.append(self.text)
...
activeTabNo = self.notebook.index("current")
self.textLista[activeTabNo].get('1.0', END+'-1c'))

这可能不是一个好方法,但至少它适用于我的目的。

于 2021-11-30T13:08:04.253 回答