31
entry.delete(0, END)
def del_list():
select = list(box.curselection())
select.reverse()
for i in select:
box.delete(i)
def save_list():
f = open('list000.txt', 'w')
f.writelines("\n".join(box.get(0, END)))
f.close()
root = Tk()
box = Listbox(selectmode=EXTENDED)
box.pack(side=LEFT)
scroll = Scrollbar(command=box.yview)
scroll.pack(side=LEFT, fill=Y)
box.config(yscrollcommand=scroll.set)
f = Frame()
f.pack(side=LEFT, padx=10)
entry = Entry(f)
entry.pack(anchor=N)
Button(f, text="Add", command=add_item)\
.pack(fill=X)
Button(f, text="Delete", command=del_list)\
.pack(fill=X)
Button(f, text="Save", command=save_list)\
.pack(fill=X)
root.mainloop()
Del_list функциясында таңдалған элементтердің кортежі тізімге айналады, содан кейін
ол кері ауыстырылады, яғни аударылады. Бұл элементтерді тізімдерді соңынан бастап жою
үшін жасалады. Әйтпесе, бағдарлама дұрыс жұмыс істемейді, өйткені элементті жою одан
кейінгі барлық индекстердің өзгеруіне әкеледі. Егер сіз соңынан жойсаңыз, онда алда
тұрған индекстер өзгермейді.
Getselection әдісі кортежді қайтарады. Кортеждерде reverse әдісі жоқ, сондықтан біз
оны тізімге айналдырамыз.
Save_list функциясында get әдісін қайтарған элемент жолдарының тізбегі '\n ' бөлгіш
арқылы join жол әдісін қолдана отырып, бір жолға айналады. Бұл тізім элементтерін бағанға
жазу үшін жасалады.
Listbox - бұл өте күрделі виджет. Қарастырылғандардан басқа, оның басқа әдістері,
сондай-ақ көптеген қасиеттері бар.
Достарыңызбен бөлісу: