# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; indent-offset: 4 -*- import roslib; roslib.load_manifest('rosgobject') import std_msgs.msg import rosgobject class UI: def __init__(self): self._sub = rosgobject.Subscriber("/testnode/string",std_msgs.msg.String) self._sub.connect("message", self._on_message) def _on_message(self, sub, msg): print msg.data if __name__ == "__main__": rosgobject.init_node("testminimal") u = UI() rosgobject.spin()
import sys import random from gi.repository import Gtk import rosgobject from rosgobject.gtk import UpdateableGtkSpinButton, UpdateableGtkSwitch def _clicked_change_sb(btn,_sb): _sb.set_value(10 + random.random()*10) def _clicked_change_sw(btn,_sw): _sw.set_active(random.randint(0,1) == 1) if __name__ == "__main__": rosgobject.init_node("testupdateable") w = Gtk.Window() w.connect("delete-event", rosgobject.main_quit) g = Gtk.Grid() w.add(g) sb = UpdateableGtkSpinButton.new_with_range(10,30,1) sb.connect("value-changed", lambda *args: sys.stdout.write("sb changed\n")) b = Gtk.Button("<-- Random Change") b.connect("clicked", _clicked_change_sb, sb) g.add(sb) g.add(b) sw = UpdateableGtkSwitch() sw.connect("notify::active", lambda *args: sys.stdout.write("sw changed\n"))
# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; indent-offset: 4 -*- import roslib roslib.load_manifest('rosgobject') import std_msgs.msg import rosgobject class UI: def __init__(self): self._sub = rosgobject.Subscriber("/testnode/string", std_msgs.msg.String) self._sub.connect("message", self._on_message) def _on_message(self, sub, msg): print msg.data if __name__ == "__main__": rosgobject.init_node("testminimal") u = UI() rosgobject.spin()