Размещение нескольких списков внутри другого списка и отображение в списке в tkinter? Пробовал, но в тексте есть фигурные скобки - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь сделать этот калькулятор для моей работы, включающей плату за предметы из разных категорий, но я застрял в списке. Я пытаюсь отобразить все элементы в списке, используя переменную list_all, при этом применяя различные переменные комиссии для элементов, выбранных для каждого отдельного списка. Список выглядит как это . Но я пытаюсь поместить каждый элемент в одну строку, а также убрать скобки вокруг некоторых элементов, я пытался найти решение, но ничего не нашел.

from tkinter import *
import tkinter as tk
from tkinter import messagebox
from tkinter import filedialog
from tkinter import ttk
from PIL import ImageTk, Image
import pymysql
import os
import shutil

principal = 0

interest = .015

bracket = 0

car_list = ["Car"]

list_0 = ["Jewelry"]

list_4 = ["CDs", "Movies", "Watches", "Video Games"]

list_6 = ["Camera", "Carpet tools", "Cell phones & Accesories", "Cement Hand Tools", "Coins & Money", "Clothing & Fashion", "Gift Cards",
"GPS", "Hand tools", "Harmonica", "Headphones", "Hunting", "MP3/iPod", "Machinist tools", "Meters/Testers", "Misc Auto Tools", "Nailers/Staplers",
"Office Equipment", "Paint", "Planers/Joiners", "Pool (billiards)", "Portable Audio/Video", "Sanders/Grinders", "Shoes", "Skates", "Rotozip",
"Shop Supplies" "Team Sports", "Tennis", "Toys", "Water Sports", "Winter Sports"]

list_10 = ["One of a kind", "Air Tools ", "Archery", "Art", "Band Saws", ]

list_15 = ["Televisions"]

list_25 = []

list_all = (list_4, list_6, list_10, list_15, list_25)


form = tk.Tk()
form.title("Fee Calculator")
form.geometry("500x280")

tab_parent = ttk.Notebook(form)


tab1 = ttk.Frame(tab_parent)
tab2 = ttk.Frame(tab_parent)
tab3 = ttk.Frame(tab_parent)

tab_parent.add(tab1, text="General Merch")
tab_parent.add(tab2, text="Jewelry")
tab_parent.add(tab3, text="Cars")

tab_parent.pack(expand=1, fill='both', side= 'top')


#for loop to increase width of list box
len_max = 0

for m in list_all:
    if len(m) > len_max:
        len_max = len(m)


# === WIDGETS FOR TAB ONE
listbox = Listbox(tab1, width = len_max)  

listbox.insert('end', *list_all)

listbox.pack()

#listbox categories
lbl = Label(tab1,text = "Categories") 
lbl.place(x=385,y=0) 
listbox.place(x=355, y=25)

1 Ответ

2 голосов
/ 16 июня 2020

Просто измените:

listbox.insert('end', *list_all)

на:

for i in list_all:
    listbox.insert('end', *i)

list_all - это 2D list, а не str.

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