The accepted answer (dated 2011) no longer works for GTK3 in 2023. Here is what awesome_text_view.py should look like:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import GObject
from gi.repository import Gtk
from gi.repository import Pango
class AwesomeTextView (Gtk.TextView):
gtype_name = 'AwesomeTextView'
def __init__(self):
Gtk.TextView.__init__(self)
def set_font(self, font_description):
self.modify_font(Pango.FontDescription(font_description))
No change is required to be made to the catalogue. And there is no need to copy files to system paths, which you may not have access to anyway. Instead use the environment variables GLADE_CATALOG_SEARCH_PATH and GLADE_MODULE_SEARCH_PATH before launching glade like so
GLADE_CATALOG_SEARCH_PATH=/path/to/awesome_widget/catalogue GLADE_MODULE_SEARCH_PATH=/path/to/awesome_widget/modules glade
Finally, save awesome_text_view.py in the directory /path/to/awesome_widget/modules/