O'Reilly logo

Tkinter GUI Programming by Example by David Love

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The LineNumbers class

Our LineNumbers class will remain as a disabled Text widget but will no longer just hold 100 numbers all of the time. Instead, it will respond to the size of the TextArea (or any Text widget) it is linked to and update its own content accordingly:

import tkinter as tkclass LineNumbers(tk.Text):    def __init__(self, master, text_widget, **kwargs):        super().__init__(master, **kwargs)        self.text_widget = text_widget        self.text_widget.bind('<KeyPress>', self.on_key_press)        self.insert(1.0, '1')        self.configure(state='disabled')

Since the LineNumbers widget is just a Text widget, it will need a reference to a master object as well as the Text widget it will be paired to. We then capture any keyword arguments and pass them to the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required