python - Python tkinter 组合框,如何选择字典键并打印相应的值?
问题描述
对 python 和 tkinter 来说非常新。我想创建多个组合框,从单个字典中独立选择,然后单击“提交”按钮后打印相应的值。通过查看一些类似的问题而没有错误和挫败感,我所能做的就是打印选定的键。
简单地说,我想在第一个组合框中选择 A4,在第二个组合框中选择 A7,单击提交,在 python shell 中产生这个结果:
8.3 x 11.7
2.9 x 4.1
而不是这个结果:
A4
A7
任何意见,将不胜感激。
import tkinter as tk
from tkinter import ttk
# Create instance
win = tk.Tk()
# Dictionary for combobox selection
Paper_sizes = {"":"", "A9":"1.5 x 2.0", "A8":"2.0 x 2.9",
"A7":"2.9 x 4.1", "A6":"4.1 x 5.8", "A5":"5.8 x 8.3",
"A4":"8.3 x 11.7", "A3":"11.7 x 16.5", "A2":"16.5 x 23.4",
"A1":"23.4 x 33.1", "A0":"33.1 x 46.8"}
# Combobox 1
ttk.Label(win, text="Choose a paper size").grid(column=1, row=0)
paper1 = tk.StringVar()
paper1_chosen = ttk.Combobox(win, width=12, textvariable=paper1, state='readonly')
paper1_chosen['values'] = sorted(list(Paper_sizes.keys()))
paper1_chosen.grid(column=1, row=1)
paper1_chosen.current(0)
# Combobox 2
ttk.Label(win, text="Choose a 2nd paper size").grid(column=1, row=2)
paper2 = tk.StringVar()
paper2_chosen = ttk.Combobox(win, width=12, textvariable=paper2, state='readonly')
paper2_chosen['values'] = sorted(list(Paper_sizes.keys()))
paper2_chosen.grid(column=1, row=3)
paper2_chosen.current(0)
# Button Click Event Function
def submit_button():
print(paper1_chosen.get())
print(paper2_chosen.get())
# Adding a Button
action = ttk.Button(win, text = "Submit", command = submit_button)
action.grid(column=2, row=4)
# Start GUI
win.mainloop()
解决方案
将您的功能更改为此对您有帮助吗?
def submit_button():
key1 = paper1_chosen.get()
key2 = paper2_chosen.get()
print(Paper_sizes[key1])
print(Paper_sizes[key2])
内部没有发生任何事情,所发生的只是您从组合框选择中获取键并打印出相应的值对。
希望您理解,如果您有更多疑问,请告诉我。
干杯
推荐阅读
- c# - 我的查询出错,解析查询时出错
- scala - scala 链式条件映射 - `ifDefined` 方法
- android - 禁用时如何为按钮背景着色
- .net - PowerShell:递归上传文件到 FTP 服务器,如果目录不存在则创建任何目录(没有 try catch)
- javascript - 按与 Firestore 限制的不等式排序
- php - 如何从一个数据库中获取数据并插入另一个数据库
- javascript - 如何对打字稿中定义的代码进行 JSON 化
- java - 如何更改我的 application.properties 文件?
- python - python - 如何在不提及python中的列名的情况下将多个新列添加到现有的csv文件?
- java - 我想创建一个带有 3 个文本字段和 2 个按钮的 JAVA 窗口