Переключение в listbox

Делаю "читалку", хотел сделать более удобные переключатели глав, но не получилось, переключает одну, а потом всё сбивается, помогите пожалуйста, ошибки в функциях following и previous.

from tkinter import *

def df():
    w = Toplevel()
    w.geometry('240x420+1142+0')
    w.title('Фигура')
    #--------------------
    f = Frame(w)
    f2 = Frame(w)
    global lb1
    global rv
    #---------------------
    rv = IntVar()
    rv.set(0)
    r1 = Radiobutton(w, text = 'Белый фон', variable = rv, value = 0)
    r2 = Radiobutton(w, text = 'Бежевый', variable = rv, value = 1)
    #---------------------
    lb1 = Listbox(w,selectmode = EXTENDED)
    for i in('Первая встреча', 'Тайна запретного крана', 'Голова заговорила',
             'Смерть или убийство', 'Жертвы большого города',
             'Новые обитатели лаборатории', 'Головы развлекаются',
             'Небо и земля', 'Порок и добродетель', 'Мертвая Диана',
             'Сбежавший экспонат', 'Допетая песня', 'Женщина-загадка',
             'Веселая прогулка', 'В Париж', 'Жертва Керна', 'Лечебница Равино',
             'Сумасшедшие', 'Трудный случай в практике', 'Новенький',
             'Побег', 'Между жизнью и смертью', 'Опять без тела',
             'Тома умирает во второй раз', 'Заговорщики',
             'Испорченный триумф', 'Последнее свидание'):
        lb1.insert(END,i)
    #--------------------
    l1 = Label(w, text = 'Оглавление')
    l2 = Label(w, text = 'Фон')
    #--------------------
    b1 = Button(w,text = 'Открыть главу', command = Open)
    b2 = Button(w,text = 'изменить фон', command = BG)
    btl = Button(w,text = 'Предыдущая глава', command = previous)
    btr = Button(w, text = 'Следующая глава', command = following)
    #--------------------
    f.pack()
    f2.pack()
    l2.pack(pady = 10)
    r1.pack()
    r2.pack()
    b2.pack(pady = 10)
    l1.pack()
    lb1.pack(pady = 10)
    b1.pack(side = TOP)
    btl.pack(side = LEFT, padx = 5)
    btr.pack(side = RIGHT, padx = 5)



Size = 16
size = 14



def UP():
    global Size
    global size 
    Size+=1
    size+=1
    text.tag_add('TTT', 1.0, '1.end')
    text.tag_config('TTT', font=("Verdana", Size, 'bold'), justify = CENTER)
    text.tag_add('ttt', 2.0, END)
    text.tag_config('ttt',font=("Arial", size))

def DOWN():
    global Size
    global size
    Size-=1
    size-=1
    text.tag_add('TTT', 1.0, '1.end')
    text.tag_config('TTT', font=("Verdana", Size, 'bold'), justify = CENTER)
    text.tag_add('ttt', 2.0, END)
    text.tag_config('ttt',font=("Arial", size))


def Open():
    text.delete(1.0,END)
    n = lb1.get(lb1.curselection())
    n = n+'.txt'
    f = open(n)
    s = f.read()
    text.insert(1.0,s)
    text.tag_add('TTT', 1.0, '1.end')
    text.tag_config('TTT', font=("Verdana", Size, 'bold'), justify = CENTER)
    text.tag_add('ttt', 2.0, END)
    text.tag_config('ttt',font=("Arial", size))
    f.close()


def BG():
    if rv.get() == 1:
        text['bg'] = '#EBE1A3'
    elif rv.get() == 0:
        text['bg'] = 'white'


x = 0
y = 0
def popup(event):
    global x, y
    x = event.x
    y = event.y
    menu.post(event.x_root, event.y_root)


def previous():
    N = list(lb1.curselection())
    N[0] = N[0]-1
    N = tuple(N)
    n = lb1.get(N)
    n = n+'.txt'
    f = open(n)
    s = f.read()
    text.insert(1.0,s)
    text.tag_add('TTT', 1.0, '1.end')
    text.tag_config('TTT', font=("Verdana", Size, 'bold'), justify = CENTER)
    text.tag_add('ttt', 2.0, END)
    text.tag_config('ttt',font=("Arial", size))
    f.close()


def following():
    N = list(lb1.curselection())
    N[0] = N[0]+1
    N = tuple(N)
    n = lb1.get(N)
    n = n+'.txt'
    f = open(n)
    s = f.read()
    text.insert(1.0,s)
    text.tag_add('TTT', 1.0, '1.end')
    text.tag_config('TTT', font=("Verdana", Size, 'bold'), justify = CENTER)
    text.tag_add('ttt', 2.0, END)
    text.tag_config('ttt',font=("Arial", size))
    f.close()






root = Tk()

root.title('Reader')
root.geometry('+0+0')

menu = Menu(tearoff=0)
menu.add_command(label = "Увеличить текст", command = UP)
menu.add_command(label = "Уменьшить текст", command = DOWN)


text = Text(width=140, height=50, bg='white', wrap=WORD)
text.bind("<Button-3>", popup)

scroll = Scrollbar(command=text.yview)
scroll.pack(side=RIGHT, fill=Y)
text.config(yscrollcommand=scroll.set)

bt = Button(root,text = 'Начать читать', command = df)

text.pack()
bt.pack()

root.mainloop()


Ответы (0 шт):