Python – CellRendererText in GTK+ 3

Gtk.CellRenderer widgets are used to display information within widgets such as the Gtk.TreeView or Gtk.ComboBox. Below are the seven Gtk.CellRenderer widgets used for different purposes.

  • Gtk.CellRendererText
  • Gtk.CellRendererToggle
  • Gtk.CellRendererPixbuf
  • Gtk.CellRendererCombo
  • Gtk.CellRendererProgress
  • Gtk.CellRendererSpinner
  • Gtk.CellRendererSpin
  • Gtk.CellRendererAccel

In this tutorial, we are going to discuss Gtk.CellRendererText. A Gtk.CellRendererText renders a given text in its cell, using the font, color, and style information provided by its properties. 

Text in Gtk.CellRendererText widget can be make editable by 

cell.set_property("editable", True)

Example :

Python3




from gi.repository import Gtk
import gi
  
gi.require_version("Gtk", "3.0")
  
  
class CellRendererTextWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title ="Beginner For Beginner")
  
        self.set_default_size(400, 400)
  
        self.liststore = Gtk.ListStore(str, str)
        self.liststore.append(
            ["Python Archives", "https://www.w3wiki.net/category/programming-language/python/"])
        self.liststore.append(
            ["Python-GTK Archives", "https://www.w3wiki.net/tag/python-gtk/"])
        self.liststore.append(
            ["Data Structures Archives", "https://www.w3wiki.net/category/data-structures/"])
        self.liststore.append(
            ["Algorithms Archives", "https://www.w3wiki.net/category/algorithm/"])
  
        treeview = Gtk.TreeView(model = self.liststore)
  
        renderer_text = Gtk.CellRendererText()
        column_text = Gtk.TreeViewColumn("Text", renderer_text, text = 0)
        treeview.append_column(column_text)
  
        renderer_editabletext = Gtk.CellRendererText()
        renderer_editabletext.set_property("editable", True)
  
        column_editabletext = Gtk.TreeViewColumn(
            "Editable Text", renderer_editabletext, text = 1)
  
        treeview.append_column(column_editabletext)
  
        renderer_editabletext.connect("edited", self.text_edited)
  
        self.add(treeview)
  
    def text_edited(self, widget, path, text):
        self.liststore[path][1] = text
  
  
win = CellRendererTextWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()


Output :

Example of CellRendererText