35 from python_qt_binding 
import QT_BINDING, QT_BINDING_MODULES, QT_BINDING_VERSION
 
   36 from python_qt_binding.QtCore 
import QObject, qVersion
 
   37 from python_qt_binding.QtWidgets 
import QMessageBox
 
   39 from .ros_package_helper 
import get_package_path
 
   44     Handler for the 'About action' menu bar item. 
   46     This handler shows a message box with details on the used libraries and their versions. 
   50         super(AboutHandler, self).
__init__(parent)
 
   60             sys.path.append(os.path.join(qt_gui_cpp_path, 
'lib'))
 
   61             sys.path.append(os.path.join(qt_gui_cpp_path, 
'src'))
 
   62             from qt_gui_cpp.cpp_binding_helper 
import qt_gui_cpp
 
   65         _rospkg_version = getattr(rospkg, 
'__version__', 
'< 0.2.4')
 
   67         logo = os.path.join(self.
_qtgui_path, 
'resource', 
'ros_org_vertical.png')
 
   68         text = 
'<img src="%s" width="56" height="200" style="float: left;"/>' % logo
 
   70         text += 
'<h3 style="margin-top: 1px;">%s</h3>' % self.tr(
'rqt')
 
   72         text += 
'<p>%s %s</p>' % (
 
   73             self.tr(
'rqt is a framework for graphical user interfaces.'),
 
   74             self.tr(
'It is extensible with plugins which can be written in either Python or C++.'))
 
   75         text += 
'<p>%s</p>' % (
 
   77                 'Please see the <a href="%s">Wiki</a> for more information on rqt and available ' 
   78                 'plugins.' % 
'http://wiki.ros.org/rqt'))
 
   80         text += 
'<p>%s: ' % self.tr(
'Utilized libraries:')
 
   82         text += 
'Python %s, ' % platform.python_version()
 
   84         text += 
'rospkg %s, ' % _rospkg_version
 
   86         if QT_BINDING == 
'pyside':
 
   88         elif QT_BINDING == 
'pyqt':
 
   90         text += 
' %s (%s), ' % (QT_BINDING_VERSION, 
', '.join(sorted(QT_BINDING_MODULES)))
 
   92         text += 
'Qt %s, ' % qVersion()
 
   94         if qt_gui_cpp 
is not None:
 
   95             if QT_BINDING == 
'pyside':
 
   96                 text += 
'%s' % (self.tr(
'%s C++ bindings available') % 
'Shiboken')
 
   97             elif QT_BINDING == 
'pyqt':
 
   98                 text += 
'%s' % (self.tr(
'%s C++ bindings available') % 
'SIP')
 
  100                 text += 
'%s' % self.tr(
'C++ bindings available')
 
  102             text += 
'%s' % self.tr(
'no C++ bindings found - no C++ plugins available')
 
  107             QMessageBox.NoIcon, self.tr(
'About rqt'), text, QMessageBox.Ok, self.parent())