python - 从条目序列/组合框打印值
问题描述
我想建立一个程序来添加一个篮球阵容。
理想情况下,我希望输出为(例如):Center, John Point Guard, Jack Shooting Guard, James
这取决于您添加多少值以及您为名称键入的内容。我正在努力提取这些输入的值。我没有收到错误 - 只是没有得到我正在寻找的结果。例如,它不是“Point Guard”,而是“”。我也没有返回条目字段的值。任何帮助将不胜感激!!
'''
import tkinter as tk
from tkinter import *
from tkinter import ttk
root = Tk()
menu = Menu(root)
root.config(menu=menu)
combovalues = ['Center' , 'Point Guard' , 'Shooting Guard' , 'Power Forward' , 'Small Forward' ]
startinglineup = []
entry_values = []
root.counter = 2
my_lineup = []
string_var = tk.StringVar()
entry_values.append(string_var)
def addlineup():
Label(root, text='Lineup Name').grid(row=0)
e1 = Entry(root)
e1.grid(row=0, column=1)
combobox = ttk.Combobox(root, values=combovalues)
combobox.grid(column=0, row=1)
e2 = Entry(root)
e2.grid(row=1, column=1)
addbutton = tk.Button(root, text='Add', width=25, command=add)
addbutton.grid(column=0, row=14)
confirmbutton = tk.Button(root, text='Confirm', width=25, command=save)
confirmbutton.grid(column=0, row=15)
def save():
number = root.counter
print(my_lineup)
def add():
root.counter += 1
combobox = ttk.Combobox(root, values=combovalues)
combobox.grid(column=0, row=root.counter)
entry = Entry(root)
entry.grid(row=root.counter, column=1)
for stringvar in entry_values:
text = string_var.get()
if text:
my_lineup.append(text)
my_lineup.append([text, combobox])
# --- main menu ---
filemenu = Menu(menu)
menu.add_cascade(label='File', menu=filemenu)
# --- lineups ----
lineupmenu = Menu(menu)
menu.add_cascade(label='Lineups', menu=lineupmenu)
lineupmenu.add_command(label='Add Lineup', command=addlineup)
lineupmenu.add_command(label='View Lineups')
mainloop()
'''
解决方案
要从条目中获取结果:
- 创建一个
StringVar()
(如果要将结果存储在不同的变量中而不是Entry
本身中)
string_var = tk.StringVar()
- 创建一个
Entry
entry = tk.Entry(root, textvariable=string_var)
entry.pack()
记得添加string_var
到参数textvariable
, textvariable=string_var
。
- 最后,得到结果(可以随时完成)
result = string_var.get()
或者,您可以这样做(如果您不想将结果存储在Entry
自身中):
entry = tk.Entry(root)
entry.pack()
result = entry.get()
你实际上并不需要StringVar
推荐阅读
- c++ - 为什么 alignas() 不采用参数包?
- ibm-cloud - 使用 curl 调用 IBM Cloud Functions 会导致“提供的身份验证无效”
- sql-server - 在没有 Windows 身份验证的情况下从 Access VBA 运行 SQL 数据库中的存储过程
- java - 如何修复 com.google.firebase.DatabaseException:无法将 java.util.HashMap 类型的值转换为字符串
- java - Groovy 为每个匹配返回一个数组
- angular - 基于动态值的角度变化图像
- angular - 通过按钮按下Angular 7滚动水平表
- configuration - 多个问题 - 旧的 MTA exim4 - 新的 MTA 后缀 - 必要的重写规则
- python - 从简历中提取密码时出现类型错误
- html - Thymeleaf:在此上下文中只允许返回数字或布尔值的变量表达式