下拉列表依赖于另一个下拉列表 tkinter

2024-01-08

我有一个包含汽车品牌的列表,还有第二个包含这些品牌的型号名称的列表。我想要两个下拉列表。首先,您选择品牌,然后在第二个下拉列表中选择型号。但仅限于所选品牌的型号。我得到以下代码。

import tkinter as tk

brands = ["Bugatti","VW","Opel","Porsche"]
models = [["Veyron","Chiron"],
          ["Golf","Passat","Polo","Caddy"],
          ["Insignia","Corsa","Astra"],
          ["Taycan","Cayenne","911"]] 

root = tk.Tk()
canvas = tk.Canvas(root, height=500, width= 500, bg="white")
canvas.pack()

tkvar = tk.StringVar(root)
tkvar.set('Choose')

popupMenu1 = OptionMenu(canvas, tkvar, *brands)
popupMenu1.pack()

def change_dropdown(*args):

    print("Chosen brand " + tkvar.get())

    for i in range(len(brands)):
        if tkvar.get() == brands[i]:
            print(models[i])

tkvar.trace('w', change_dropdown)
root.mainloop()

我现在如何使用列表模型中的信息创建第二个下拉列表。感谢您的帮助。


您可以使用 Combobox 来制作依赖下拉列表

import tkinter
from tkinter import ttk
root = tkinter.Tk()
''' 
widgets are added here 
'''
brands = ["Bugatti","VW","Opel","Porsche"]

models = [["Veyron","Chiron"],
          ["Golf","Passat","Polo","Caddy"],
          ["Insignia","Corsa","Astra"],
          ["Taycan","Cayenne","911"]]

car_brand = ttk.Combobox(root, width=37, value=(brands))
car_brand.grid(row=3, column=1, columnspan=2, padx=10, pady=2, sticky='w')

def callback(eventObject):
    abc = eventObject.widget.get()
    car = car_brand.get()
    index=brands.index(car)
    car_model.config(values=models[index])

car_model = ttk.Combobox(root, width=37)
car_model.grid(row=4, column=1, columnspan=2, padx=10, pady=2, sticky='w')
car_model.bind('<Button-1>', callback)

root.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

下拉列表依赖于另一个下拉列表 tkinter 的相关文章

随机推荐

  • 为什么 March=native 会破坏我的程序?

    我正在编译程序 include
  • 如何让liveserver渲染django模板?

    我一直在搞一个教程网站 我发现当我尝试打开 Django 模板时 我的 VS Code LiveServer 插件无法正常工作 我应用的 CSS 丢失了 尽管一切都在我的本地开发服务器中正确呈现 并且模板语言代码实际上被打印到屏幕上而不是被
  • 如何创建/管理作业队列[重复]

    这个问题在这里已经有答案了 我有一个有序列表中包含数千个 shell 作业的队列 我需要从上到下并行运行 4 个作业以避免 CPU 饱和 如果我只是将作业列表拆分为 4 个批处理脚本 则运行时不会对齐 其中一个脚本将远远领先于其他脚本 但仍
  • STOMP 或 XMPP - 通过 websocket

    我正在开发一个涉及实时聊天 消息传递 包括群聊 的项目 我以前使用过 websockets 所以我开始使用 spring websockets 来研究这个问题 并且我阅读了一些关于实现它的最佳方法的文章 然后我遇到了 STOMP 作为 we
  • 使用 Capistrano,如何回滚到特定版本?

    使用 Capistrano 如何回滚到特定版本 我的服务器文件夹中有一个 release 文件夹 我如何回滚到特定的文件夹 我是否可以在本地计算机上获取版本列表 我正在使用 GIT 但这不起作用 cap deploy s revision
  • 打字稿“不是索引器的子类型”,是什么意思?

    我正在通过阅读来学习 Typescript这份官方文件 https www typescriptlang org docs handbook interfaces html关于索引器类型 我无法理解这段代码 interface Number
  • 大范围连续整数的数据结构?

    假设内存中有大量连续整数 每个整数都属于一个类别 两个操作必须是 O log n 将范围从一个类别移动到另一个类别 以及查找给定范围的类别计数 我很确定只要第一个操作的正确实现 第二个操作就可以轻松解决 每个整数都从一个类别开始 因此我从一
  • 带凭证的 AngularJS

    我一直在开发一个 AngularJS 项目 该项目必须将 AJAX 调用发送到 Restfull Web 服务 该网络服务位于另一个域中 因此我必须在服务器上启用 cors 我通过设置这些标头来做到这一点 cresp getHttpHead
  • 在 bash 中仅杀死管道中的第一个进程

    如果我有一个长时间运行的命令定期输出一些数据 例如tail F我想用 awk 或其他东西 处理 tail F service log awk END print How to kill the first process only tail
  • 二进制响应内容,请求库

    我正在阅读有关请求库的文档 它似乎已经非常过时了 我一步一步尝试了其中显示的所有示例 并在尝试运行以下代码时遇到了问题 import requests from PIL import Image from StringIO import S
  • 现有 ASP.NET 4 解决方案中的高效 URL 屏蔽/伪装/隐藏

    我当前的系统使用 IIS 6 和 7 使用 ASP NET 和 NET 4 中的 C 编写 我的目的是完全隐藏网址 根据客户请求 IE https myapp it mydomain com Secure folder1 folder2 f
  • 正则表达式匹配 Perl 中字符串的第二次出现

    我正在尝试匹配 perl 中字符串的第一次和第二次出现 输入的前几行 包含在 intersect 中 是 gi 112807938 emb CU075707 1 Xenopus tropicalis finished cDNA clone
  • 无法打开活动:无法创建 Android 视图模型实例

    我正在创建一个应用程序来扫描条形码并使用 Android 视图模型和 LiveData 将该信息获取到房间数据库中 这是错误消息 java lang RuntimeException Unable to start activity Com
  • 将 Autofac 容器传递给 WPF UserControl

    我正在使用 autofac 来解析 WPF 应用程序中的视图和视图模型 IComponentContext 自动传递到视图中 一个例子 public BusinessAuto int proposedCoverageId IComponen
  • 如何从JSP下载附件文件

    我想知道如何根据内容配置从 JSP 页面下载任何文件依恋来自邮件服务器 我想在 JSP 页面上创建一个链接 通过单击该链接 用户可以从邮件服务器下载文件 该链接应该用于内容处置依恋类型 我怎样才能在 JSP 中做到这一点 不要为此使用 JS
  • Visual Studio 抱怨编译调试时找不到 .exe

    我有一个非常简单的 C 应用程序 include
  • Ruby 中的 Monad 等价物

    Ruby 中 monad 的等效构造是什么 精确的技术定义 在 Ruby 中 一个 monad 可以是任何带有以下内容的类 bind and self unit定义的方法使得对于所有实例 m m class unit a bind f f
  • 定制锂路由场景

    我的任务是用大量预先存在的链接目录重写现有网站 为了便于论证 我们假设我们无法执行任何会更改链接目录的操作 以下是我们正在使用的链接结构的一些示例 项目页面将是 www domain com widgets some totally awe
  • 为什么java语句评估会发生这样的情况?

    int z 1 System out println z z System out println z z 输出将是 false true 我不明白为什么 请向我解释一下 的操作数 从左到右评估 http docs oracle com j
  • 下拉列表依赖于另一个下拉列表 tkinter

    我有一个包含汽车品牌的列表 还有第二个包含这些品牌的型号名称的列表 我想要两个下拉列表 首先 您选择品牌 然后在第二个下拉列表中选择型号 但仅限于所选品牌的型号 我得到以下代码 import tkinter as tk brands Bug