你能发布一个代码sn-p吗?我不确定我是否得到了这个问题,但我的第一个想法是生成一个网格,将tk.Labels 分配给每个位置,并将对它们的引用保存在一个列表(或二维列表)中。然后,当您需要更新时,只需调用
self.labels[i][j].config(text='foo')
然后您将循环遍历 i 和 j 以根据日历的布局方式设置值。
编辑:
不,我不会对其进行硬编码,使用循环应该很简单,例如:
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 或其他矩阵。