首页 > 解决方案 > 使用组合框的 Python Tkinter 日期选择器

问题描述

由于无法安装 tkcalendar,因此我一直在尝试仅使用组合框制作日期选择器。我的问题是如果我选择一个月的某个 cb,如何更改一天的值组合框。例如,四月不应该有“31”日或二月不应该有“30”日。

这是我到目前为止所做的:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("200x150")
root.resizable(False,False)

frame = Frame(root)
frame.pack()
vlist = ["January up to December"]

vlist2 = ["1 up to 31"]

vlist3 = ["2015 up to 2040"]

vlist4 = ["1 up to 30"]

Combo = ttk.Combobox(frame, values = vlist, state='readonly')
Combo.set("Pick a month")
Combo.pack(padx = 5, pady = 5)

Combo2 = ttk.Combobox(frame, values = vlist2, state='readonly')
Combo2.set("Pick a day")
Combo2.pack(padx = 5, pady = 5)

Combo3 = ttk.Combobox(frame, values = vlist3, state='readonly')
Combo3.set("Pick a year")
Combo3.pack(padx = 5, pady = 5)

def retrieve():
    if Combo.get() == "April":
        Combo2["values"] = (vlist4)
    else:
        Combo2["values"] = (vlist2)
    
    print(Combo.get(), Combo2.get(), Combo3.get())

Button = Button(frame, text = "Submit", command = retrieve)
Button.pack(padx = 5, pady = 5)

root.mainloop()

我只用了四月。我以后可能会添加更多。另外,我会缩短 vlist 的值以避免这里出现长代码。

我希望你们能帮助我:)

标签: pythonpython-3.xtkinter

解决方案


推荐阅读