Печать значений из последовательности записей / комбинированных списков - PullRequest
0 голосов
/ 26 марта 2020

Я хочу построить программу для добавления баскетбольной линейки.

В идеале я хочу, чтобы выходные данные были (в качестве примера): Центр, Джон Пойнт Гвардия, Джек Стреляющий Страж, Джеймс

Это будет зависеть от того, сколько значений вы добавляете и что вводите для имени. Я изо всех сил пытаюсь вытащить эти значения, которые введены. Я не получаю ошибку - просто не получаю результаты, которые я ищу. Например, вместо «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() 

' ''

1 Ответ

0 голосов
/ 26 марта 2020

Чтобы получить результаты из записи:

  1. Создайте 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...