在 PySimpleGUI 中使用 sg.Tree() 显示 Table 的内容
Show Table of Contents using sg.Tree() in PySimpleGUI
我想显示 Table 的 PDF 内容 ,因为我正在使用 PySimpleGUI 创建 PDFViewer。我不知道除了 TreeData()
.
之外是否还有其他选项可用于创建 Table 内容
我的 table 内容是一个嵌套列表,看起来像这样:
[1, 'Cover', 1]
[1, 'PART ONE OVERVIEW', 25]
[2, 'Chapter 1 Introduction', 27]
[3, '1.1 What Operating Systems Do', 28]
[3, '1.2 Computer-System Organization', 31]
[3, '1.3 Computer-System Architecture', 36]
[2, 'Chapter 2 Operating-System Structures', 79]
[3, '2.1 Operating-System Services', 79]
[3, '2.2 User and Operating-System Interface', 82]
[3, '2.3 System Calls', 86]
[1, 'PART TWO PROCESS MANAGEMENT', 127]
[2, 'Chapter 3 Processes', 129]
[3, '3.1 Process Concept', 129]
现在,我不知道如何循环遍历此列表并将所有内容放在应有的位置。例如,给定列表应如下所示:
Cover
PART ONE OVERVIEW
Chapter 1 Introduction
1.1 What Operating Systems Do
1.2 Computer-System Organization
1.3 Computer-System Architecture
Chapter 2 Operating-System Structures
2.1 Operating-System Services
....
在递归的帮助下,我实现了我的 objective。我正在分享该功能,以便未来的访问者立即获得解决方案。
def create_toc(self, contents, parent, phead):
cons = iter(contents)
for content in cons:
i = contents.index(content)
head, text = content[0], content[1]
if head == phead:
i += 1
key = ''.join(text.split())
self.TOC_tree.insert(parent, key, text, content[2])
else:
j = i
while True:
j += 1
if j < len(contents) and contents[j][0] != phead:
next(cons, None)
else:
break
self.create_toc(contents[i:j], key, head)
您首先必须创建一个 sg.TreeData()
对象,然后向其中插入 Node
。第一次调用这个函数是这样的:
create_toc(toc, "", toc[0][0])
我想显示 Table 的 PDF 内容 ,因为我正在使用 PySimpleGUI 创建 PDFViewer。我不知道除了 TreeData()
.
我的 table 内容是一个嵌套列表,看起来像这样:
[1, 'Cover', 1]
[1, 'PART ONE OVERVIEW', 25]
[2, 'Chapter 1 Introduction', 27]
[3, '1.1 What Operating Systems Do', 28]
[3, '1.2 Computer-System Organization', 31]
[3, '1.3 Computer-System Architecture', 36]
[2, 'Chapter 2 Operating-System Structures', 79]
[3, '2.1 Operating-System Services', 79]
[3, '2.2 User and Operating-System Interface', 82]
[3, '2.3 System Calls', 86]
[1, 'PART TWO PROCESS MANAGEMENT', 127]
[2, 'Chapter 3 Processes', 129]
[3, '3.1 Process Concept', 129]
现在,我不知道如何循环遍历此列表并将所有内容放在应有的位置。例如,给定列表应如下所示:
Cover
PART ONE OVERVIEW
Chapter 1 Introduction
1.1 What Operating Systems Do
1.2 Computer-System Organization
1.3 Computer-System Architecture
Chapter 2 Operating-System Structures
2.1 Operating-System Services
....
在递归的帮助下,我实现了我的 objective。我正在分享该功能,以便未来的访问者立即获得解决方案。
def create_toc(self, contents, parent, phead):
cons = iter(contents)
for content in cons:
i = contents.index(content)
head, text = content[0], content[1]
if head == phead:
i += 1
key = ''.join(text.split())
self.TOC_tree.insert(parent, key, text, content[2])
else:
j = i
while True:
j += 1
if j < len(contents) and contents[j][0] != phead:
next(cons, None)
else:
break
self.create_toc(contents[i:j], key, head)
您首先必须创建一个 sg.TreeData()
对象,然后向其中插入 Node
。第一次调用这个函数是这样的:
create_toc(toc, "", toc[0][0])