Я делаю так:
Код: Выделить всё
WOBOXES = []
for i in range(117):
if i == 0:
WOBOXES.append("")
if i > 0:
a = i + 1
b = ""
WOBOXES.append(b)
Код: Выделить всё
'', '', '', etc.
Код: Выделить всё
, , , etc.
Есть идеи, как их записать, чтобы они правильно попадали в список, без одинарных или двойных кавычек?
Изменить:У меня тринадцать рядов по девять входных ячеек в каждом. Они предназначены для указания поставщика, номера приобретенной детали, отображаемого номера детали, описания детали или услуги, количества, стоимости детали, розничной цены, рабочего времени и трудозатрат.
слева от каждой строки находится ряд из трех кнопок. Один для удаления строки, один для смещения строки на единицу вниз и один для смещения строки на единицу вверх.
Чтобы кнопка удаления работала, мне нужно скопировать значения из строку под ней, удалите удаляемую строку, перезапишите значения из строки ниже в текущую строку, а затем повторите процесс до последней строки. Это много переменных и много работы.
Простой цикл прекрасно справился с утомительной работой. Но для этого нужен словарь и список. В словаре хранятся значения, а в списке есть поля ввода, поэтому цикл знает, куда записывать значения словаря.
В текущей версии, которая работает, я создаю поле ввода и затем добавьте его в список. Он записывает в список без одинарных кавычек ''. Когда я пытаюсь заранее записать поля ввода в список, они записываются с одинарными кавычками.
Надеюсь, это достаточно объясняет, почему я пытаюсь это сделать. это.
Тот же процесс одновременно поможет в работе других кнопок. Мне нужно настроить его только один раз.
Изменить:
Пример длинного кода, как и просили.
Код: Выделить всё
#Work Order Entry Box Dictionary
IE = {}
for i in range(117):
IE[i] = None #This presets all my keys with blank values.
#Work Order Box List
WOBOXES = [] #Empty list. Would like to prefill it with a loop.
def vendor_1(event):
IE[0] = vendbox1.get() #This writes the box data to the dictionary as I type.
vendfrm1 = tkinter.Frame(master=wofrm, bg="#b2b4b7", width=58, height=25, borderwidth=2, relief=tkinter.SUNKEN) #This is for visual effect, lacking a margin option in an Entry box.
vendfrm1.place(x=144, y=110)
vendbox1 = tkinter.Entry(master=wofrm, bg="#b2b4b7", fg="#000000", width=8, borderwidth=0, relief=tkinter.FLAT)
vendbox1.place(x=150, y=114)
WOBOXES.append(vendbox1) #This adds the box to the list.
vendbox1.bind("", vendor_1) #This runs the function to write the Entry box data to the dictionary.
def on_enter(event):
DelBut1.config(bg="#333537")
def on_leave(event):
DelBut1.config(bg="#292d2e") #These two functions are hover highlights.
#This is the code for the first delete button to delete the current row and move all the others up.
def del1(event):
for i in range(108):
a = i + 9
IE[i] = IE[a]
IE[a] = None
for j in range(117):
textbox = WOBOXES[j]
textbox.delete(0, tkinter.END)
for k in range(117):
if IE[k] == None:
continue
textbox = WOBOXES[k]
textbox.insert(0, IE[k])
#This is the button and its bindings.
DelBut1 = tkinter.Button(master=wofrm, width=3, bg="#292d2e", fg="#962d10", text="X", relief=tkinter.FLAT, takefocus=False)
DelBut1.place(x=46, y=110)
DelBut1.bind("", on_enter)
DelBut1.bind("", on_leave)
DelBut1.bind("", del1)
Подробнее здесь: https://stackoverflow.com/questions/791 ... for-a-list
Мобильная версия