重构布局系统并改进界面

This commit is contained in:
2025-08-03 03:57:21 +08:00
parent 445e15646b
commit 4beb42f615
5 changed files with 123 additions and 26 deletions

54
main.py
View File

@@ -48,10 +48,12 @@ class MemScreen(Screen):
self.stage += self.reactor.set_round_templated(self.stage)
#print(self.reactor.procession)
self.reactor.forward()
self.compo:compo.Composition = compo.Placeholder(self)
#self.compo:compo.Composition = compo.Placeholder(self)
self.compo = next(self.reactor.current_appar)
def compose(self) -> ComposeResult:
self.compo = next(self.reactor.current_appar)
print(self.compo)
yield Header(show_clock=True)
with Container(id="main_container"):
yield from self.compo.compose()
@@ -67,7 +69,7 @@ class MemScreen(Screen):
pass
def on_button_pressed(self, event):
self.compo.handler(event)
ret = self.compo.handler(event)
"""feedback_label = self.query_one("#feedback", Static)
if type(event) == str:
btnid = event
@@ -76,7 +78,51 @@ class MemScreen(Screen):
btnid = str(btnid)
quality = int(btnid.replace('q', ''))
assessment = self.reactor.report(self.reactor.current_atom, quality)
if assessment == 1:
"""
# 遵循 perror 返回值规则
if ret == 0: # 成功
try:
self.compo = next(self.reactor.current_appar)
self.refresh_ui()
except StopIteration:
nxt = self.reactor.forward(1)
print(2)
self.compo = next(self.reactor.current_appar)
print(self.compo)
#print("next", nxt, self.reactor.current_atom)
if nxt == -1:
if self.reactor.round_set == 0:
if self.stage == 4:
if config.get("save"):
self.reactor.save()
#self._show_finished_screen("今日目标已完成")
else:
self.reactor.set_round_templated(self.stage)
self.reactor.forward(1)
#self._update_ui()
self.stage += 1
return
return
else:
self.refresh_ui()
return
if ret == 1: # 不允许前进
self.refresh_ui()
return
def refresh_ui(self):
area = self.query_one("#main_container")
self.call_later(self.recompose)
#print(area.children)
#for child in list(area.children):
# child.remove() # 致敬传奇组件树 DOM
#print(1,list(self.compo.compose()))
#area.mount(*list(self.compo.compose()))
def report(self, quality):
assessment = self.reactor.report(self.reactor.current_atom, quality)
return assessment
"""if assessment == 1:
# 需要复习
feedback_label.update(f"评分为 {quality}, 已经加入至复习, 请重复记忆")
else: