如何将选定键的功能中的多个值的特定值获取到组合框中?

问题描述 投票:0回答:1

我有 1 个组合框来选择我的产品,根据情况我的代码将执行一些操作。

来自字典

 dic = {'product_1': \['5', '', 'B1'\], 'product_2': \['12', '28', 'B2'\],'product_3': \['14', '', 'B3'\]}

我想将字典中的值提取到变量来执行此操作:

首先要知道,我有 2 个按钮(d 和 b)。

如果我从组合框中选择“product_1”,我希望将值“5”分配给variable_1。

如果我从组合框中选择“product_2”,我希望将值“12”分配给variable_1,将“28”分配给variable_2。

如果我从组合框中选择“product_3”,我希望将值“14”传递给variable_1。

然后我将按钮:

如果我从组合框 d 中选择“product_1”按钮将受到 def set_d 的影响。

如果我从组合框中选择“product_2”,d 按钮将受到 def set_d 的影响,b 按钮将受到 def set_b 的影响。

如果我从组合框 d 中选择“product_3”按钮将受到 def set_d 的影响。

我主要的所有行动都很好。


import tkinter as tk
from tkinter import ttk
from tkinter import 
from dico_vl import dic

app_prod = tk.Tk()

dic = {'product_1': \['5', '', 'B1'\],
'product_2': ['12', '28', 'B2'\],
'product_3': ['14', '', 'B3'\],
}
listProducts = list(dic.keys())

d= `*i don't know to get value '12' here*`

b= `*i don't know to get value '28' here*`

def set_d():
ps.write(f'You selected {d}')
def set_b():
ps.write(f'You selected {b}')

def select_prod(event):
value = list_prod.get()

    if value in p1:
        action_1
    
    if value in p2:
        action_2

frame_prod = LabelFrame(app_prod,  text="Product selection")
frame_prod.pack(side=TOP,  fill="x",  expand=0,  ipadx=10,  ipady=10,  padx=10)

list_prod = ttk.Combobox(frame_prod, value = listProducts, width=30)
list_prod.bind("\<\<ComboboxSelected\>\>", select_prod)
list_prod.pack(ipadx=5, ipady=5, padx=5, pady=5)

type1A = tk.Button(text="T1", width=10, command=set_d)
type1B = tk.Button(text="T2", width=10, command=set_b)
python-3.x dictionary tkinter key-value
1个回答
0
投票

如何将所选键的功能中的多个值的特定值放入组合框

我有 1 个组合框来选择我的产品,根据情况我的代码将执行一些操作。

我不明白你的意思

variable_1
和variable_2等。你的意思是这些进入字典列表吗?
我把这个留给你了。

  • 不要使用通配符。所以,我删除了
    from tkinter import
  • 减少方法。
  • 使用一个按钮小部件,而不是创建按钮小部件。

片段:

import tkinter as tk
from tkinter import ttk
#from dico_vl import dic


app_prod = tk.Tk()

dic = {'product_1': ['5', '', 'B1'],
'product_2': ['12', '28', 'B2'],
'product_3': ['14', '', 'B3'],
}

listProducts = list(dic.keys())
 
def select_prod(event):
    value = list_prod.get()
    print(dic[value][0])

     
def select_key():
    value = list_prod.get()
    print(f'You selected key {value}')
    #ps.write(f'You selected {value}')

     
frame_prod = tk.LabelFrame(app_prod,  text="Product selection")
frame_prod.pack(side=tk.TOP,  fill="x",  expand=0,  ipadx=10,  ipady=10,  padx=10)

list_prod = ttk.Combobox(frame_prod, value = listProducts, width=30)
list_prod.bind('<<ComboboxSelected>>', select_prod)
list_prod.pack(ipadx=5, ipady=5, padx=5, pady=5)

tk.Button(text="T1", width=10, command=select_key).pack()

app_prod.mainloop()

截图:

enter image description here

输出:

5
You selected key product_1


12
You selected key product_2
© www.soinside.com 2019 - 2024. All rights reserved.