首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python日历,放置数字

python日历,放置数字
EN

Stack Overflow用户
提问于 2014-05-22 00:03:23
回答 1查看 179关注 0票数 1

我正在创建一个使用tkinter显示年度日历的python程序。

但是,我偶然发现了这个问题--每当有人改变这个月时,这些日子显然不得不在我的网格中重新安排自己。我怎样才能做到这一点?例如,2014年5月1日从周三开始。因为我的日历是0-10,我的日历是2-7行和2-8行,所以我希望数字开始于row=2,col=6,31在row=6,col=8。

我怎么能这么做?欢迎任何帮助或建议。尤其是到目前为止,我认为每个元素都需要一个标签,每个标签都需要有自己的名称。或者,在tkinter中可能还有一些我不知道的小部件,可以帮我解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 02:52:07

你能贴个代码片段吗?我不确定我是否理解这个问题,但我的第一个想法是生成一个网格,并将tk.Labels分配到每个点,并将对它们的引用保存在列表(或2-D列表)中。然后,当你需要更新的时候,打电话给

代码语言:javascript
复制
self.labels[i][j].config(text='foo')

然后遍历ij,根据日历的布局设置值。

编辑:不,我不会硬编码它,使用循环应该很简单,例如:

代码语言:javascript
复制
import math

# Initialize the calendar matrix
cal = []
for i in range(5): # 5 weeks
    cal.append([])
    for j in range(7): # 7 days per week
        cal[i].append('')

# Set the calendar for some month
start = 3 # Wed
for day in range(31):
    row = math.floor( (day+start) / 7)
    col = (day+start) - 7*row
    cal[row][col] = str(day+1)

print(cal)

吐出来

代码语言:javascript
复制
[['', '', '', '1', '2', '3', '4'], ['5', '6', '7', '8', '9', '10', '11'], ['12', '13', '14', '15', '16', '17', '18'], ['19', '20', '21', '22', '23', '24', '25'], ['26', '27', '28', '29', '30', '31', '']]

当然,在GUI中,您可能希望有一个tk.Label或其他的矩阵。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23795777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档