Можно ли добавить несколько записей в одну строку в списке? - PullRequest
0 голосов
/ 16 апреля 2019

Прямо сейчас вы можете добавить данные в список, благодаря общности переполнения стека, я не уверен, возможно ли иметь все записи на одной строке в списке

Я знаю, еслия использую одно поле ввода, все будет в одной строке

from tkinter import *
from tkinter import messagebox

def add_task():
    task = name_input.get()
    start_dte = start_date_input.get()
    due_dte = due_date_input.get()
    pri = pri_input.get()
    stat = status_input.get()
    # end

    listbox.insert(1, task)
    listbox.insert(1, start_dte)
    listbox.insert(1, due_dte)
    listbox.insert(1, pri)
    listbox.insert(1, stat)

def clear_all():
    listbox.delete(0,END)

root = Tk()
root.title("Todo list") # title of the application
    #root.geometry("900x400") # size of the application
titlelbl=Label(root, text = 'Welcome to your To-do-list', font='Times 30  bold').grid(row=0, column=5)#pack(),place(x = 25, y = 30)


name_input = StringVar()
start_date_input = StringVar()
due_date_input = StringVar()
pri_input = StringVar()
status_input = StringVar()

Label(root, text = "Name").grid(row = 6, column = 4)#pack()
name = Entry(root, textvariable = name_input)
name.grid(row = 7, column = 4)#pack()

Label(root, text = "Start date").grid(row = 6, column = 5)#pack()
start_date = Entry(root, textvariable = start_date_input)
start_date.grid(row = 7, column = 5)#pack()

Label(root, text = "Due date").grid(row = 6, column = 6)#pack()
due_date = Entry(root, textvariable = due_date_input).grid(row = 7, column = 6)#pack()

Label(root, text = "Priority").grid(row = 6, column = 7)#pack()
priority = Entry(root, textvariable = pri_input)
priority.grid(row = 7, column = 7)#pack()

Label(root, text = "Status").grid(row = 6, column = 8)#pack()
status = Entry(root, textvariable = status_input)
status.grid(row = 7, column = 8)#pack()

add_btn = Button(root, text = 'Add', width = 10, height = 3, command = add_task)
add_btn.grid(row = 9, column= 7)#pack()#place(x = 15, y = 50)

listbox = Listbox(root,font=('', 12), width = 60, height = 10)
listbox.grid(row = 3, column = 5)#pack()
listbox.insert(1, 'Name          Start date          Due Date       Priority        Status')

Button(root, text = 'Clear',width = 10, height = 3, command = clear_all).grid(row =9, column =10)

root.mainloop()

Ожидаемый результат для пользователя - ввести данные из полей ввода в lisbox одной строкой.Вместо этого, потому что все они имеют это как вставка в 1, они идут друг под другом

1 Ответ

1 голос
/ 16 апреля 2019

Один из способов добиться этого - сначала ввести строку, а затем вставить.

def add_task():
    task = name_input.get()
    start_dte = start_date_input.get()
    due_dte = due_date_input.get()
    pri = pri_input.get()
    stat = status_input.get()
    test_string = task+"          "+start_dte+"          "+due_dte+"          "+pri+"          "+stat
    listbox.insert(1,test_string)

точно так же, как вы сделали заголовки в списке, сделав его строкой.

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