Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 import os
00036
00037 import dynamic_reconfigure.client
00038 from python_qt_binding import loadUi
00039 from python_qt_binding.QtGui import QWidget
00040 import rospy
00041
00042 from .param_dynreconf_client import ClientWidget
00043 from .param_editors import EditorWidget, BooleanEditor, DoubleEditor, EnumEditor, IntegerEditor, StringEditor
00044 from .param_groups import GroupWidget
00045 from .param_updater import ParamUpdater
00046
00047 class ParameditWidget(QWidget):
00048 def __init__(self):
00049 super(ParameditWidget, self).__init__()
00050
00051 ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
00052 'ui/paramedit_pane.ui')
00053 loadUi(ui_file, self)
00054
00055 self._dynreconf_client = None
00056
00057 self.destroyed.connect(self.close)
00058
00059 def show_reconf(self, node):
00060 rospy.logdebug('ParameditWidget.show str(node)=%s', str(node))
00061
00062 reconf = None
00063 try:
00064 reconf = dynamic_reconfigure.client.Client(str(node),
00065 timeout=5.0)
00066 except rospy.exceptions.ROSException:
00067 rospy.logerr("Could not connect to %s" % node)
00068
00069 return
00070 finally:
00071 if self._dynreconf_client:
00072 self._dynreconf_client.close()
00073
00074 self._dynreconf_client = ClientWidget(reconf)
00075
00076
00077 self._paramedit_scrollarea.setWidget(self._dynreconf_client)
00078 self._paramedit_scrollarea.setWidgetResizable(True)
00079
00080 def close(self):
00081 if self._dynreconf_client is not None:
00082
00083 self._dynreconf_client.close()
00084 self._dynreconf_client = None
00085
00086 self._paramedit_scrollarea.deleteLater()