0
$\begingroup$

Rosanswers logo

I have created some rqt plugins, but the plugin label is not shown as expected in the rqt GUI. See this image:

image description

The first 3 plugins are homemade, the last one is the ROS standard image view plugin. Why do my own plugins appear without any label? The label is visible in the Plugins menu, but missing:

  1. in the "Running" list as shown above
  2. On the tab control that is dynamically created when a plugin is dropped on another.
  3. At the top of the showed plugin container, where standard ROS plugins show a label.

My plugin.xml file has the format below for each plugin, and I would expect the label field to show up in the GUI as for standard plugins...?

   <class name="My status Plugin" type="rqt_vn.my_status_module.MyStatusPlugin" base_class_type="rqt_gui_py::Plugin">
    <description>
      bla bla bla.
    </description>
    <qtgui>
      <group>
        <label>Foo</label>
        <icon type="theme">folder</icon>
        <statustip>Bla bla bla</statustip>
      </group>
      <label>My status overview</label>
      <icon type="theme">system-help</icon>
      <statustip>Bla bla bla.</statustip>
    </qtgui>
  </class>

(ROS Kinetic, Ubuntu 16.04)

EDIT: I have made a minimal example that shows the problem, feel free to clone it:

  git clone https://[email protected]/krisno/rqt_demo.git

Originally posted by knxa on ROS Answers with karma: 811 on 2017-12-01

Post score: 0


Original comments

Comment by Ruben Alves on 2017-12-05:
Do you have a public repository with the code available?

Comment by knxa on 2017-12-06:
Thanks for showing interest in my little problem. I have created a minimal example that demonstrates the issue, see above

Comment by knxa on 2017-12-20:
did you try the code in the repo?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The widget you are adding needs to have a window title since that attribute is what you are expecting in the title bar of the widget (which is also used for the list of running plugins within the menu.

You can modify your code like this to provide a window title:

label = QLabel("Label in the demo plugin")
label.setWindowTitle('My title')
context.add_widget(label)

Since it is possible to create multiple instances of each plugin you likely want to distinguish them, see https://github.com/ros-visualization/rqt_graph/blob/90117a0b04c99d1baf4589dc97751fa3487883a4/src/rqt_graph/ros_graph.py#L121-L122 for an example.


Originally posted by Dirk Thomas with karma: 16276 on 2017-12-20

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by knxa on 2017-12-22:
Thanks. To make this work I had to add a call to setObjectName as well. The object name is not shown, but is required anyway:

label = QLabel("Label in the demo plugin")
label.setObjectName('xxx')
label.setWindowTitle('My title')
context.add_widget(label)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.