我用cherrytree做笔记,这是一个用python编写的分层笔记应用程序。快捷方式允许插入日期节点,树中日期节点的结构如下:
├─ year
│ └─ month1
│ │ └─ day1
│ │ └─ day2
│ └─ month2
├─ year2
├─ a user node
我想将日期节点插入名为“ journal”或诸如此类的父节点,如下所示:
├─ journal
│ └─ year1
│ │ └─ month1
│ │ │ └─ day1
│ │ └─ month2
│ └─ year2
├─ a user node
core.py 中的函数 node_date 是:
def node_date(self, *args):
"""Insert Date Node in Tree"""
now_year = time.strftime("%Y").decode(locale.getlocale()[1])
now_month =time.strftime("%B").decode(locale.getlocale()[1])
now_day = time.strftime("%A %d %B %Y").decode(locale.getlocale()[1])
#print now_year, now_month, now_day
if self.curr_tree_iter:
curr_depth = self.treestore.iter_depth(self.curr_tree_iter)
if curr_depth == 0:
if self.treestore[self.curr_tree_iter][1] == now_year:
self.node_child_exist_or_create(self.curr_tree_iter, now_month)
self.node_date()
return
else:
if self.treestore[self.curr_tree_iter][1] == now_month\
and self.treestore[self.treestore.iter_parent(self.curr_tree_iter)][1] == now_year:
self.node_child_exist_or_create(self.curr_tree_iter, now_day)
return
if self.treestore[self.curr_tree_iter][1] == now_year:
self.node_child_exist_or_create(self.curr_tree_iter, now_month)
self.node_date()
return
self.node_child_exist_or_create(None, now_year)
self.node_date()
有人可以帮助我适应它吗?我不是开发人员(我在python中的技能无法以我喜欢的方式修改now_day日期格式...),我想将注释和日记节点分开,而不必手动移动由...自动创建的日期节点捷径。谢谢您的帮助。
答案 0 :(得分:1)
我在project repo issue上获得了帮助。我的node_date方法现在是:
def node_date(self, *args):
"""Insert Date Node in Tree"""
top_node = "journal"
now_year = time.strftime("%Y").decode(locale.getlocale()[1])
now_month =time.strftime("%Y-%B").decode(locale.getlocale()[1])
now_day = time.strftime("%A %d %B %Y").decode(locale.getlocale()[1])
#print now_year, now_month, now_day
self.node_child_exist_or_create(None, top_node)
self.node_child_exist_or_create(self.curr_tree_iter, now_year)
self.node_child_exist_or_create(self.curr_tree_iter, now_month)
self.node_child_exist_or_create(self.curr_tree_iter, now_day)
正如我对贡献者说的那样,我不明白为什么在他的解决方案如此简单的情况下,为什么所有这些项目代码都包含在项目代码中,但是目前看来,它可以按照我想要的方式工作。