python - 我正在尝试从组合框中获取当前选定的项目(键)
问题描述
我想我终于知道如何向所有人展示我正在尝试做的事情。这是放置 ttk.Combobox 和 ttk.Button 的代码。组合框由字典“my_act_dict”填充用户从 cb 中选择一个项目后,我想点击按钮并从组合框中获取密钥。
from tkinter import Tk
from tkinter import ttk
my_act_dict = {'Serve': 1, 'Stock': 2, 'Board': 3}
class Screen:
def __init__(self, master):
self.master = master
master.title("A simple GUI")
master.geometry("200x200")
self.save_button = ttk.Button(master, text="What is cb key?", command=self.save)
self.save_button.pack()
self.cb_act = ttk.Combobox(master, values=[*my_act_dict])
self.cb_act.pack()
def save(self):
# cb_key = ???
print("cb key = ?")
用户按下按钮时如何获取组合框键?
root = Tk()
my_gui = Screen(root)
root.mainloop()
对不起,我不是很清楚。我刚刚开始学习 python,并且在课程方面遇到了真正的问题。谢谢你的帮助。
约翰
解决方案
我最终做的是创建一个类属性 my_key 并从组合框和按钮访问它。
my_dict = {'Serve': 1, 'Stock': 2, 'Board': 3}
class Screen:
my_key = "None"
def __init__(self, master):
self.master = master
master.geometry("300x300")
def bu_callback():
a = self.my_key
print("button click global: ", a)
self.my_button = ttk.Button(master, text="Test CB RETURN",command=bu_callback)
self.my_button.pack()
var_per = tk.StringVar()
cb = ttk.Combobox(master, values=[*my_dict],textvariable = var_per)
cb.pack()
def cb_callback(event):
key_p = var_per.get()
vol_id = my_dict[key_p]
self.my_key = vol_id
print("from cb_callback:",self.my_key)
cb.bind('<<ComboboxSelected>>', cb_callback)
推荐阅读
- c - 将条件字符添加到 C 中的打印语句
- .net - 通用动作的表达式树
- python - python - 如何从python中sklearn中的cross_val_predict获取排序的概率和名称
- tensorflow - 如何编写自定义 keras 层来重新采样 3D 体积?
- node.js - 如何修复应该显示数据的授权的 [object Object] 响应?
- python - xarry 绘图 - 具有最大值的像素不会被设置的级别淹没
- python - re.match() 在python中具有固定模式
- google-maps - 为什么谷歌地图在加载时会切断这个网址的最后两个地址?
- apache-nifi - 在分布式 nifi 集群和电子邮件通知上合并流文件的问题
- laravel - 合并 3 个集合以每行返回一个对象