Files
textual/examples/tree.py
2022-11-19 11:57:25 +00:00

47 lines
968 B
Python

import json
from textual.app import App, ComposeResult
from textual.widgets import Header, Footer, Tree, DirectoryTree
with open("food.json") as data_file:
data = json.load(data_file)
from rich import print
print(data)
class TreeApp(App):
BINDINGS = [
("a", "add", "Add node"),
("c", "clear", "Clear"),
("t", "toggle_root", "Toggle root"),
]
def compose(self) -> ComposeResult:
yield Header()
yield Footer()
yield DirectoryTree("../")
def action_add(self) -> None:
tree = self.query_one(Tree)
json_node = tree.root.add("JSON")
tree.root.expand()
tree.add_json(json_node, data)
def action_clear(self) -> None:
tree = self.query_one(Tree)
tree.clear()
def action_toggle_root(self) -> None:
tree = self.query_one(Tree)
tree.show_root = not tree.show_root
if __name__ == "__main__":
app = TreeApp()
app.run()