Как передать значения из группы атрибутов объекта в поля со списком tkinter - PullRequest
0 голосов
/ 29 января 2019

Я собираюсь заполнить комбинированный список tkinter списком значений атрибутов, содержащихся в наборе объектов определенного класса.У меня есть метод, который работает, но он кажется неэффективным по мере увеличения количества объектов.

Я пытался использовать операторы while / for, но, возможно, синтаксис неверен из-за форматирования значений tkinter.

class Customer:
def __init__(self, name, people):
    self.name = name
    self.people = people

customer1 = Customer("First Customer", ["Brian", "Sally"])
customer2 = Customer("Second Customer", ["Kevin", "James"])
customer3 = Customer("Third Customer", ["Peter", "Sarah"])

customer_list = [customer1, customer2, customer3]

from tkinter import *
from tkinter.ttk import *

window = Tk()
window.title("Command Console")
window.geometry('350x200')

l1 = Label(window, text = "Select a customer.")
l1.grid(column=0,row=0)

b1 = Button(window, text = "Grab")
b1.grid(column=1,row=1)

c1 = Combobox(window)
c1['values'] = customer_list[0].name, customer_list[1].name, 
customer_list[2].name
c1.grid(column=0,row=1)

Хотя вышеприведенное работает, было бы предпочтительным заполнить.name значения для i = 0 to i < len(customer_list) или аналогичные, однако я не могу выработать механизм.

1 Ответ

0 голосов
/ 29 января 2019

Не знаю много тк, но вот как вы можете обобщить ваш код, построив кортеж из списка:

c1['values'] = tuple(customer.name for customer in customer_list)

здесь я использовал генератор понимания

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