It should indeed be done like this:

 import gi
 gi.require_version('Gtk', '3.0')
 from gi.repository import Gtk

 from gi.repository import GObject

 mystore = Gtk.ListStore(GObject.TYPE_UINT64)
 mystore.insert_with_valuesv(-1, [1], [GObject.Value(GObject.TYPE_UINT64, 
1330400507426)])

###

I was completely unaware of that possibility because the source of my
GTK knowlege is

https://lazka.github.io/pgi-
docs/#Gtk-3.0/classes/ListStore.html#Gtk.ListStore.set_column_types

When checking out the available types one ends up here:

https://lazka.github.io/pgi-
docs/#GObject-2.0/classes/GType.html#GObject.GType

Which does not ring any bell ...

So I did it like in

https://python-gtk-3-tutorial.readthedocs.io/en/latest/treeview.html
#the-model

where the Python types are used.

###

With the knowlege I gained through this FR it was possible to find this:

GObject Built-in Type Constants
The Built-in Type constants specify the pre-defined types used by gobject.

https://developer.gnome.org/pygobject/stable/gobject-constants.html
#gobject-type-constants

which is quite useful.

###

Thanks!

On 11.03.20 17:56, Christoph Reiter wrote:
>  import gi
>   gi.require_version('Gtk', '3.0')
>   from gi.repository import Gtk
>
>   This works in Python 2:
>
>   mystore = Gtk.ListStore(long)
>   mystore.insert_with_valuesv(-1, [1], [long(1330400507426)])
>
>   This does not work in Python 3:
>
>   mystore = Gtk.ListStore(int)
>   mystore.insert_with_valuesv(-1, [1], [int(1330400507426)])

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to pygobject in Ubuntu.
https://bugs.launchpad.net/bugs/1866625

Title:
  OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit
  Integers.

Status in pygobject package in Ubuntu:
  New

Bug description:
  import gi
  gi.require_version('Gtk', '3.0')
  from gi.repository import Gtk

  This works in Python 2:

  mystore = Gtk.ListStore(long)
  mystore.insert_with_valuesv(-1, [1], [long(1330400507426)])

  This does not work in Python 3:

  mystore = Gtk.ListStore(int)
  mystore.insert_with_valuesv(-1, [1], [int(1330400507426)])

  OverflowError: Item 0: out of range for int property

  ----

  lsb_release -rd
  Description:  Ubuntu 18.04.4 LTS
  Release:      18.04

  apt-cache policy python3-gi
  python3-gi:
    Installed: 3.26.1-2ubuntu1
    Candidate: 3.26.1-2ubuntu1
    Version table:
   *** 3.26.1-2ubuntu1 500
          500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 
Packages
          100 /var/lib/dpkg/status
       3.26.1-2 500
          500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

  python3 -V
  Python 3.6.9

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to