dragov 发表于 2025-7-26 14:31:52

Tkinter 打印 calendar ,如何对齐呀 ?



from tkinter import *
import calendar
root=Tk()
a=calendar.month(2025,7)
Message(root,text=a).pack()
mainloop()


FishC 发表于 2025-7-26 14:32:20

在 Tkinter 中显示日历时,对齐问题通常是由于字体非等宽导致的。解决方法是指定等宽字体(如 `Courier`),并使用 `Label` 替代 `Message` 控件(更适合显示多行固定文本)。以下是修改后的代码:


from tkinter import *
import calendar

root = Tk()
root.title("2025年7月日历")

# 生成日历文本
cal_text = calendar.month(2025, 7)

# 使用Label + 等宽字体
Label(
    root,
    text=cal_text,
    font=("Courier", 12),# 关键:使用等宽字体
    justify=LEFT,          # 左对齐
    bg='white'
).pack(padx=10, pady=10)

root.mainloop()


解决关键点:
1. font=("Courier", 12):等宽字体确保每个字符宽度相同
2. 用 Label 替代 Message:更简单控制多行文本
3. justify=LEFT:显式指定左对齐

效果:星期标题和日期列会自动对齐,无需手动调整空格。

如果需要调整外观,可以修改 font 参数(如 ("Consolas", 14))或添加 bg='#F0F0F0' 背景色。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2025-7-26 23:10:25

唯一的问题就是字体不等宽,因为这个本身是对齐好的


font=("Courier", 12),# 关键:使用等宽字体
页: [1]
查看完整版本: Tkinter 打印 calendar ,如何对齐呀 ?