我用python创建了一个带有月和周视图的日历应用程序。 在“月视图”中,我可以每天写笔记,将它们存储在字典中,并将字典保存到磁盘中,以便随时阅读。在
现在我正在处理week视图。我成功地显示了我从month视图中选择的日期(周数和天数,周一到周日)。在代码中,我使用Gtk.Label
表示周数和周数,并将它们附在Gtk.Grid
中。在每一天下面,我使用一个Gtk.TextView
循环创建一个for in
列表,其中显示了每月每天的笔记视图。对吗现在,我每次只显示一个音符周。如果我有多个笔记在不同的日子里不能全部显示他们。还有这是我的问题。
下面是周日历正在更新的代码片段(def update_week_cal
)。如何修改循环中的代码部分,以便我可以显示从月视图中选择的每个星期的所有注释?在
def update_week_cal(self, *args):
year, month, day = self.calendar.get_date()
month = month + 1
today = datetime.date(year, month, day)
self.page2.remove(self.label)
self.label = Gtk.Label(str(today.isocalendar()[1]) + "η Εβδομάδα")
self.page2.attach(self.label, 3, 1, 1, 1)
dates = list([today + datetime.timedelta(days=i) for i in range(0 - today.weekday(), 7 - today.weekday())])
j = 0
for days in dates:
self.labels[j].destroy()
if days == today:
self.labels[j] = Gtk.Label()
self.labels[j].set_markup('<span font = "12" weight = "bold">{0}</span>'.format(days.strftime("%a ""%d/""%m")))
else:
self.labels[j] = Gtk.Label(days.strftime("%a ""%d/""%m"))
self.page2.attach(self.labels[j], j, 2, 1, 1)
self.page2.remove(self.textviews[j])
self.textviews[j] = Gtk.TextView()
self.textviews[j].set_editable(False)
self.textviews[j].set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
self.page2.attach(self.textviews[j], j, 3, 1, 1)
for i in range(7):
try:
if self.text is not None and self.d[(year, month, day)]:
x = int(today.strftime("%w"))-1
self.textviews[x].get_buffer().set_text(self.text)
except KeyError:
x = int(today.strftime("%w")) - 1
self.textviews[x].get_buffer().set_text(self.text)
print(i, j, x)
except TypeError:
x = int(today.strftime("%w")) - 1
self.textviews[x].get_buffer().set_text(self.text)
self.show_all()
j = j + 1
考虑到我在month和week视图中使用了相同的Gtk.TextBuffer
。
self.text
是月视图中的注释。在
提前谢谢。在
好吧,我设法根据日期显示笔记,改变了思考问题的方式,从开始。那个在旧代码末尾添加新代码,减去:
问题的答案是下面的代码:
^{pr2}$相关问题 更多 >
编程相关推荐