pygobject / pgi

[Unmaintained: Use PyGObject instead] GTK+ / GObject Introspection Bindings for PyPy.
GNU Lesser General Public License v2.1
74 stars 16 forks source link

UINT32 signal argument not implemented #51

Open elibroftw opened 2 years ago

elibroftw commented 2 years ago

This might be an issue with pstray, but I'm leaving it here for now.

  File "/home/fortanix/Documents/GitHub/music-caster/src/music_caster.py", line 106, in system_tray
    tray = pystray.Icon('Music Caster SystemTray', unfilled_icon, title='Music Caster [LOADING]')
  File "/home/fortanix/.local/lib/python3.10/site-packages/pystray/_gtk.py", line 36, in __init__
    self._status_icon.connect(
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/obj.py", line 156, in connect
    return self.__connect(0, detailed_signal, handler, *args)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/obj.py", line 118, in __connect
    cb = generate_signal_callback(info)(_add_self)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/siggen.py", line 153, in generate_signal_callback
    cb_func = _generate_signal_callback(backend, info, args, arg_types)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/siggen.py", line 101, in _generate_signal_callback
    cls = get_cbarg_class(type_)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/cbargs.py", line 149, in get_cbarg_class
    raise NotImplementedError(
NotImplementedError: 'UINT32' signal argument not implemented
elibroftw commented 2 years ago
import pgi as gi
gi.install_as_gi()
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

def activate(status_icon):
    print(status_icon)

def popup_menu(self, status_icon, button, activate_time):
        """The handler for *popup-menu* for the status icon.

        This signal handler will display the menu if one is set.
        """
        if self._menu_handle:
            self._menu_handle.popup(
                None, None, Gtk.StatusIcon.position_menu,
                self._status_icon, 0, Gtk.get_current_event_time())

status_icon = Gtk.StatusIcon.new()
status_icon.connect('activate', activate)
status_icon.connect('popup-menu', popup_menu)
Traceback (most recent call last):
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/cbargs.py", line 147, in get_cbarg_class
    cls = _classes[tag_value]
KeyError: 7

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/fortanix/Documents/GitHub/music-caster/src/test.py", line 24, in <module>
    status_icon.connect('popup-menu', popup_menu)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/obj.py", line 156, in connect
    return self.__connect(0, detailed_signal, handler, *args)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/obj.py", line 118, in __connect
    cb = generate_signal_callback(info)(_add_self)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/siggen.py", line 153, in generate_signal_callback
    cb_func = _generate_signal_callback(backend, info, args, arg_types)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/siggen.py", line 101, in _generate_signal_callback
    cls = get_cbarg_class(type_)
  File "/home/fortanix/.local/lib/python3.10/site-packages/pgi/codegen/cbargs.py", line 149, in get_cbarg_class
    raise NotImplementedError(
NotImplementedError: 'UINT32' signal argument not implemented

Running with gi instead of pgi results in

DeprecationWarning: Gtk.StatusIcon.new is deprecated
  status_icon = Gtk.StatusIcon.new()