gpt4 book ai didi

python tkinter calender,放置数字

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:48 24 4
gpt4 key购买 nike

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

但是,我偶然发现了这个问题 - 每次有人更改月份时,日子显然都必须在我的网格内重新排列。我该如何实现这一目标?例如,2014 年 5 月 1 日从星期三开始。由于我的日历有第 0-10 列,并且我的日历为第 2-7 行和第 2-8 列,因此我希望数字从 row=2、col=6 开始,第 31 行从 row=6、col=8 开始。

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

最佳答案

您可以发布代码片段吗?我不确定我是否明白这个问题,但我的第一个想法是生成一个网格,其中分配给每个点的 tk.Labels ,并将对它们的引用保留在列表(或二维列表)中)。然后,当您需要更新时,只需调用

self.labels[i][j].config(text='foo')

然后,您将循环 ij 以根据日历的布局方式设置值。

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

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)

吐出

[['', '', '', '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 或其他内容的矩阵。

关于python tkinter calender,放置数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com