This commit is contained in:
2025-11-05 00:17:12 +08:00
parent 4eaff18685
commit b63813f84d
8 changed files with 70 additions and 66 deletions

View File

@@ -28,7 +28,8 @@ class PreparationScreen(Screen):
super().__init__(name=None, id=None, classes=None)
self.nucleon_file = nucleon_file
self.electron_file = electron_file
self.nucleon_union = pt.load_nucleon(self.nucleon_file)
self.nucleons_with_orbital = pt.load_nucleon(self.nucleon_file)
self.electrons = pt.load_electron(self.electron_file)
def compose(self) -> ComposeResult:
yield Header(show_clock=True)
@@ -36,7 +37,7 @@ class PreparationScreen(Screen):
yield Label(f"准备就绪: [b]{self.nucleon_file.stem}[/b]\n")
yield Label(f"内容源文件对象: ./nucleon/[b]{self.nucleon_file.name}[/b].toml")
yield Label(f"元数据文件对象: ./electron/[b]{self.electron_file.name}[/b].toml")
yield Label(f"\n单元数量:{len(self.nucleon_union)}\n")
yield Label(f"\n单元数量:{len(self.nucleons_with_orbital)}\n")
yield Button(
"开始记忆",
@@ -57,8 +58,10 @@ class PreparationScreen(Screen):
def _get_full_content(self):
content = ""
for i in self.nucleon_union:
content += " - " + i["content"] + " \n"
for nucleon, orbital in self.nucleons_with_orbital:
nucleon: pt.Nucleon
print(nucleon.payload)
content += " - " + nucleon["content"] + " \n"
return content
def action_go_back(self):
@@ -74,10 +77,24 @@ class PreparationScreen(Screen):
def on_button_pressed(self, event) -> None:
if event.button.id == "start_memorizing_button":
atoms = list()
for nucleon, orbital in self.nucleons_with_orbital:
atom = pt.Atom(nucleon.ident)
atom.link("nucleon", nucleon)
try:
atom.link("electron", self.electrons[nucleon.ident])
except KeyError:
atom.link("electron", pt.Electron(nucleon.ident))
atom.link("orbital", orbital)
atom.link("nucleon_fmt", "toml")
atom.link("electron_fmt", "json")
atom.link("orbital_fmt", "toml")
atom.link("nucleon_path", self.nucleon_file)
atom.link("electron_path", self.electron_file)
atom.link("orbital_path", None)
atoms.append(atom)
from .memorizor import MemScreen
newscr = MemScreen(
self.nucleon_file, self.electron_file, 6
)
self.app.push_screen(newscr)
memscreen = MemScreen(atoms)
self.app.push_screen(memscreen)
elif event.button.id == "precache_button":
self.action_precache()