Я не могу открыть ваше изображение, но позвольте мне попытаться помочь вам.
Установите для параметра команды виджета на полосе прокрутки значение txt yview.
scrollb = tk.Scrollbar(..., command=txt.yview)
Установите команду yscroll для текстового виджетаОпция для метода установки полосы прокрутки.
txt['yscrollcommand'] = scrollb.set
Вам необходимо сделать так, чтобы ваш текст и полоса прокрутки реагировали на колесо мыши.
Чтобы добавить номера строк в текст, возможно, вы могли бы использовать цикл, который добавляет номера в следующую строку каждый раз, когда вы делаете цикл.
Вот рабочий код с полосой прокрутки, реагирующей на колесо мыши:
import tkinter as tk
class App(object):
def __init__(self):
self.root = tk.Tk()
# create a Frame for the Text and Scrollbar
txt_frm = tk.Frame(self.root, width=600, height=600)
txt_frm.pack(fill="both", expand=True)
# ensure a consistent GUI size
txt_frm.grid_propagate(False)
# implement stretchability
txt_frm.grid_rowconfigure(0, weight=1)
txt_frm.grid_columnconfigure(0, weight=1)
# create a Text widget
self.txt = tk.Text(txt_frm, borderwidth=3, relief="sunken")
self.txt.config(font=("consolas", 12), undo=True, wrap='word')
self.txt.grid(row=0, column=0, sticky="nsew", padx=2, pady=2)
# create a Scrollbar and associate it with txt
scrollb = tk.Scrollbar(txt_frm, command=self.txt.yview)
scrollb.grid(row=0, column=1, sticky='nsew')
self.txt['yscrollcommand'] = scrollb.set
app = App()
app.root.mainloop()