Skip to content

Instantly share code, notes, and snippets.

@JohnCoconut
Created May 10, 2018 07:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JohnCoconut/1d50c8f722b0f2729c7adaf61e06dc06 to your computer and use it in GitHub Desktop.
Save JohnCoconut/1d50c8f722b0f2729c7adaf61e06dc06 to your computer and use it in GitHub Desktop.
Gtk.CellRenderSpinner in python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GObject
class Window(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title='CellRendererSpinner')
self.model = Gtk.ListStore.new([bool, int])
self.model.append([True, 0])
self.view = Gtk.TreeView(self.model)
# column bool (as spinner)
self.spinner_renderer = Gtk.CellRendererSpinner()
col_bool = Gtk.TreeViewColumn('bool', self.spinner_renderer, active=0)
self.view.append_column(col_bool)
# column int
col_int = Gtk.TreeViewColumn('int', Gtk.CellRendererText(), text=1)
self.view.append_column(col_int)
self.add(self.view)
self.connect('destroy', Gtk.main_quit)
self.show_all()
def on_spinner_pulse(self):
row0 = self.model[0]
if row0[0]:
row0[1] = 0 if row0[1] == 99 else row0[1] + 1
self.spinner_renderer.set_property("pulse", row0[1])
return True
if __name__ == '__main__':
win = Window()
GObject.timeout_add(100, win.on_spinner_pulse)
Gtk.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment