Search the view for :class:`TreeView` instances and call
        :meth:`setup_column` on all their columns.

        .. note::
           This is a convenience function. It is never called by the framework.
           You are free to repurpose it in subclasses.

        For editing to work, the widget must already be connected to a model.
        If you don't use :class:`ListStoreModel` this can be done in Glade,
        however a `bug <https://bugzilla.gnome.org/show_bug.cgi?id=597095>`_
        makes versions prior to 3.7.0 (released March 10th, 2010) remove
        Python columns on save. If you want to correct the XML manually, it
        should look like this::

         <object class="GtkListStore" id="liststore1">
           <columns>
             <column type="PyObject"/>
           </columns>
         </object>

def setup_columns(self):
        """
        Search the view for :class:`TreeView` instances and call
        :meth:`setup_column` on all their columns.

        .. note::
           This is a convenience function. It is never called by the framework.
           You are free to repurpose it in subclasses.

        For editing to work, the widget must already be connected to a model.
        If you don't use :class:`ListStoreModel` this can be done in Glade,
        however a `bug <https://bugzilla.gnome.org/show_bug.cgi?id=597095>`_
        makes versions prior to 3.7.0 (released March 10th, 2010) remove
        Python columns on save. If you want to correct the XML manually, it
        should look like this::

         <object class="GtkListStore" id="liststore1">
           <columns>
             <column type="PyObject"/>
           </columns>
         </object>
        """
        for name in self.view:
            w = self.view[name]
            if isinstance(w, Gtk.TreeView):
                m = w.get_model()
                for c in w.get_columns():
                    self.setup_column(c, model=m)