Can't create GEnum in Python
I might be wrong, but it looks like all GEnum stuff was created to provide enums from C. But I would like to use GEnums from Python, for the following reasons:
- To use custom GEnums in custom widget's properties (and being able to change them in GtkInspektor)
- To set these properties from GSettings (through dconf-editor, for example)
Thus I was expecting the following code would work:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject
class SwitchToggleMode(GObject.GEnum):
AUTO = 1
ENABLED = 2
DISABLED = 3
class SwitchBox(Gtk.Box):
__gtype_name__ = "SwitchBox"
def __init__(self):
Gtk.Box.__init__(self)
self.switch_inverse_mode = SwitchToggleMode.AUTO
@GObject.Property(type=SwitchToggleMode, default=SwitchToggleMode.AUTO)
def show_switch_inverse_mode(self):
return self.switch_inverse_mode
@show_switch_inverse_mode.setter
def show_switch_inverse_mode(self, mode):
self.switch_inverse_mode = mode
But I get TypeError: could not get typecode from object
:
Traceback (most recent call last):
File "/home/likern/Projects/PythonGUIGnome/test/test_enum.py", line 11, in <module>
class SwitchBox(Box):
File "/home/likern/Projects/PythonGUIGnome/test/test_enum.py", line 18, in SwitchBox
@GObject.Property(type=SwitchToggleMode, default=SwitchToggleMode.AUTO)
File "/home/likern/.virtualenvs/photomanager/lib/python3.6/site-packages/gi/_propertyhelper.py", line 155, in __init__
self._check_default()
File "/home/likern/.virtualenvs/photomanager/lib/python3.6/site-packages/gi/_propertyhelper.py", line 306, in _check_default
elif not _gi.GType(default).is_a(ptype):
TypeError: could not get typecode from object