Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x t根据其他输入更改选项菜单_Python 3.x_Tkinter - Fatal编程技术网

Python 3.x t根据其他输入更改选项菜单

Python 3.x t根据其他输入更改选项菜单,python-3.x,tkinter,Python 3.x,Tkinter,我有两个选择菜单,一天和一个月。我想让它,如果选择的月份是“二月”或“2”,那么天将只显示为28,即{1…28} dayVar = StringVar(top) day = {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} dayMenu = OptionMenu(top, dayVar, *day) Label(t

我有两个选择菜单,一天和一个月。我想让它,如果选择的月份是“二月”或“2”,那么天将只显示为28,即{1…28}

dayVar = StringVar(top)
day = {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}
dayMenu = OptionMenu(top, dayVar, *day)
Label(top, text="Day").grid(row = 0, column = 0)
dayMenu.grid(row = 1, column = 0)

#month
monthVar = IntVar(top)
month = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
monthMenu = OptionMenu(top, monthVar, *month)
Label(top, text="Month").grid(row = 0, column = 1)
monthMenu.grid(row = 1, column = 1)

可能有点过火了,但希望你能理解:

import tkinter as tk
from tkinter import ttk


class App(tk.Frame):
    def __init__(self, master):
        self.master = master
        tk.Frame.__init__(self, self.master)

        self.days_in_month = {
            'January': 31,
            'February': 28,
            'March': 31,
            'April': 30,
            'May': 31,
            'June': 30,
            'July': 31,
            'August': 31,
            'September': 30,
            'October': 31,
            'November': 30,
            'December': 31
        }

        self.configure_gui()
        self.create_widgets()

    def configure_gui(self):
        self.master.title("Days in Month")

    def populate_days(self, event):
        self.days_menu.set('')

        # populate the days menu
        self.days_menu['values'] = [
            i + 1 for i in range(self.days_in_month[self.months_menu.get()])
        ]

    def create_widgets(self):
        # set up months label
        self.months_label = ttk.Label(self.master, text="Months:")
        self.months_label.grid(row=0, column=0, padx=(12, 6), pady=(12, 0))

        #set up months menu
        self.months_menu = ttk.Combobox(self.master, state='readonly')
        self.months_menu['values'] = list(self.days_in_month.keys())
        self.months_menu.bind('<<ComboboxSelected>>', self.populate_days)
        self.months_menu.grid(row=1, column=0, padx=(12, 6), pady=(6, 12))

        # set up days label
        self.days_label = ttk.Label(self.master, text="Days:")
        self.days_label.grid(row=0, column=1, padx=(6, 12), pady=(12, 0))

        # set up days menu
        self.days_menu = ttk.Combobox(self.master, state='readonly')
        self.days_menu['values'] = []
        self.days_menu.grid(row=1, column=1, padx=(6, 12), pady=(6, 12))


if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()
将tkinter作为tk导入
从tkinter导入ttk
类应用程序(tk.Frame):
定义初始(自我,主):
self.master=master
tk.Frame.\uuuuu初始化(self,self.master)
self.days\u in\u month={
"一月":三十一号,,
二月二十八号,,
三月三十一日,
四月三十号,,
五月三十一日,
六月三十号,,
七月三十一日,
八月三十一日,
九月三十号,,
十月三十一日,
11月30日,
十二月三十一日
}
self.configure_gui()
self.create_widgets()
def配置图形用户界面(自):
self.master.title(“月天数”)
def填充天数(自身、事件):
self.days\u菜单集(“”)
#填充“天”菜单
self.days_菜单['values']=[
i+1表示范围内的i(self.days\u in\u month[self.months\u menu.get()])
]
def创建_小部件(自):
#设置月份标签
self.months\u label=ttk.label(self.master,text=“months:)
self.months_label.grid(行=0,列=0,padx=(12,6),pady=(12,0))
#设置月份菜单
self.months\u menu=ttk.Combobox(self.master,state='readonly')
self.months\u菜单['values']=列表(self.days\u in\u month.keys())
self.months\u menu.bind(“”,self.populate\u days)
self.months\u menu.grid(行=1,列=0,padx=(12,6),pady=(6,12))
#设置天数标签
self.days\u label=ttk.label(self.master,text=“days:)
self.days_label.grid(行=0,列=1,padx=(6,12),pady=(12,0))
#设置天数菜单
self.days\u menu=ttk.Combobox(self.master,state='readonly')
self.days_菜单['values']=[]
self.days_menu.grid(行=1,列=1,padx=(6,12),pady=(6,12))
如果名称=“\uuuuu main\uuuuuuuu”:
root=tk.tk()
app=app(根目录)
root.mainloop()