zoukankan      html  css  js  c++  java
  • Tkinter基于Combobox控件实现二级菜单联动

    代码

    from tkinter import *
    from tkinter import ttk
    
    select = {"年度": ("第一季度", "第二季度", "第三季度", "第四季度"),
              "第一季度": ("1月", "2月", "3月"),
              "第二季度": ("4月", "5月", "6月"),
              "第三季度": ("8月", "7月", "9月"),
              "第四季度": ("10月", "11月", "12月")}
    
    
    class Perf_GUI():
        def __init__(self, init_window_name):
            self.init_window_name = init_window_name
    
        def init_window(self):
            self.init_window_name.title("二级菜单联动")  # 设置窗口名字
            self.init_window_name.geometry('770x520+100+50')  # 设置窗口大小
    
            self.plan_period_label = Label(self.init_window_name, text="一级菜单:")
            self.plan_period_label.grid(row=1, column=0)
            xVariable = StringVar()
            self.plan_ttk = ttk.Combobox(self.init_window_name, textvariable=xVariable)
            self.plan_ttk.grid(row=1, column=1)
            self.plan_ttk['value'] = list(select.keys())
            self.report_period_label = Label(self.init_window_name, text="二级菜单:")
            self.report_period_label.grid(row=1, column=2)
            der = StringVar()
            self.report_ttk = ttk.Combobox(self.init_window_name, textvariable=der)
            self.report_ttk.grid(row=1, column=3)
    
            # Combobox下拉菜单实现联动
            def xFunc(event):
                self.report_ttk.delete(0, END)
                value = xVariable.get()
                self.report_ttk['value'] = select[value]
                self.report_ttk.current(0)     # 设置默认值
    
            self.plan_ttk.bind("<<ComboboxSelected>>", xFunc)
    
    
    def gui_start():
        init_window = Tk()
        Gui_Tool = Perf_GUI(init_window)
        Gui_Tool.init_window()
        init_window.mainloop()
    
    
    if __name__ == '__main__':
        gui_start()
    
    
    

    效果图

    一级菜单选择年度时:
    选择年度

    一级菜单选择第一季度时:
    选择第一季度

  • 相关阅读:
    树莓派4B
    SpringBoot 自定义 info Actuator 原理
    RestTemplate翻译serviceId过程
    ISA, ABI, API区别
    01.编译器结构
    【Git123】Git SSH Key支持多账号
    【消息中间件123】Solace PubSub+ Event Broker介绍
    【ETL123】
    【Http123】Http Timeout
    【性能123】Linux性能之“平均负载”
  • 原文地址:https://www.cnblogs.com/91parson/p/14994381.html
Copyright © 2011-2022 走看看