1 from distutils.version
import LooseVersion
5 from threading
import Lock
7 import python_qt_binding
8 import python_qt_binding.QtCore
as QtCore
9 from python_qt_binding.QtCore
import QEvent
10 from python_qt_binding.QtCore
import QSize
11 from python_qt_binding.QtCore
import Qt
12 from python_qt_binding.QtCore
import QTimer
13 from python_qt_binding.QtCore
import qWarning
14 from python_qt_binding.QtCore
import Slot
15 import python_qt_binding.QtGui
as QtGui
16 from python_qt_binding.QtGui
import QBrush
17 from python_qt_binding.QtGui
import QColor
18 from python_qt_binding.QtGui
import QFont
19 from python_qt_binding.QtGui
import QIcon
20 from python_qt_binding.QtGui
import QPainter
21 from python_qt_binding.QtGui
import QPen
24 from resource_retriever
import get_filename
29 from std_msgs.msg
import Bool
30 from std_msgs.msg
import Time
31 from std_msgs.msg
import String
33 from .util
import get_slot_type_field_names
34 from .hist
import ROSData
36 if LooseVersion(python_qt_binding.QT_BINDING_VERSION).version[0] >= 5:
37 from python_qt_binding.QtWidgets
import QAction
38 from python_qt_binding.QtWidgets
import QComboBox
39 from python_qt_binding.QtWidgets
import QCompleter
40 from python_qt_binding.QtWidgets
import QDialog
41 from python_qt_binding.QtWidgets
import QLabel
42 from python_qt_binding.QtWidgets
import QLineEdit
43 from python_qt_binding.QtWidgets
import QMenu
44 from python_qt_binding.QtWidgets
import QMessageBox
45 from python_qt_binding.QtWidgets
import QPushButton
46 from python_qt_binding.QtWidgets
import QSizePolicy
47 from python_qt_binding.QtWidgets
import QVBoxLayout
48 from python_qt_binding.QtWidgets
import QWidget
51 from python_qt_binding.QtGui
import QAction
52 from python_qt_binding.QtGui
import QComboBox
53 from python_qt_binding.QtGui
import QCompleter
54 from python_qt_binding.QtGui
import QDialog
55 from python_qt_binding.QtGui
import QLabel
56 from python_qt_binding.QtGui
import QLineEdit
57 from python_qt_binding.QtGui
import QMenu
58 from python_qt_binding.QtGui
import QMessageBox
59 from python_qt_binding.QtGui
import QPushButton
60 from python_qt_binding.QtGui
import QSizePolicy
61 from python_qt_binding.QtGui
import QVBoxLayout
62 from python_qt_binding.QtGui
import QWidget
67 super(LineEditDialog, self).
__init__()
70 vbox = QVBoxLayout(self)
72 model = QtGui.QStandardItemModel(self)
73 for elm
in rospy.get_param_names():
74 model.setItem(model.rowCount(), 0, QtGui.QStandardItem(elm))
80 self.
combo_box.completer().setModel(model)
84 button = QPushButton()
85 button.setText(
"Done")
87 vbox.addWidget(button)
98 rqt plugin to provide simple label
101 super(StringLabel, self).
__init__(context)
102 self.setObjectName(
"StringLabel")
104 context.add_widget(self.
_widget)
118 super(StringLabelWidget, self).
__init__()
120 vbox = QVBoxLayout(self)
122 self.
label.setAlignment(Qt.AlignLeft)
123 self.
label.setSizePolicy(
124 QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored))
125 font = QFont(
"Helvetica", 14)
126 self.
label.setFont(font)
127 self.
label.setWordWrap(
True)
128 vbox.addWidget(self.
label)
159 if type(latest) == String:
165 except TypeError
as e:
169 need_to_update =
False
170 for (topic, topic_type)
in rospy.get_published_topics():
171 msg = roslib.message.get_message_class(topic_type)
173 for field
in field_names:
174 string_topic = topic + field
177 need_to_update =
True
182 self.
_dialog.combo_box.addItem(topic)
187 self.
_dialog.combo_box.setCurrentIndex(
198 rospy.logwarn(
"%s is already subscribed", topic)
206 instance_settings.set_value(
"active_topic", self.
_active_topic)
209 if instance_settings.value(
"active_topic"):
210 topic = instance_settings.value(
"active_topic")
211 self.
_dialog.combo_box.addItem(topic)