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 .dynreconf_client_widget import DynreconfClientWidget
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 """
00061
00062 :type node:
00063 """
00064 rospy.logdebug('ParameditWidget.show str(node)=%s', str(node))
00065
00066 dynreconf_client = None
00067 try:
00068 dynreconf_client = dynamic_reconfigure.client.Client(str(node),
00069 timeout=5.0)
00070 except rospy.exceptions.ROSException:
00071 rospy.logerr("Could not connect to %s" % node)
00072
00073 return
00074 finally:
00075 if self._dynreconf_client:
00076 self._dynreconf_client.close()
00077
00078 self._dynreconf_client = DynreconfClientWidget(dynreconf_client)
00079
00080
00081 self._paramedit_scrollarea.setWidget(self._dynreconf_client)
00082 self._paramedit_scrollarea.setWidgetResizable(True)
00083
00084 def close(self):
00085 if self._dynreconf_client is not None:
00086
00087 self._dynreconf_client.close()
00088 self._dynreconf_client = None
00089
00090 self._paramedit_scrollarea.deleteLater()