예제 #1
0
    def __init__(self):
        QWidget.__init__(self)
        self.layout = QVBoxLayout(self)
        self.graphwidget = GraphWidget(self)

        self.graph = None
        self.refresh = False
        self.p = 1

        self.layout.addWidget(self.graphwidget)

        self.infobar = QHBoxLayout()

        self.info_nodes = QLabel(self)
        self.info_nodes.setMinimumHeight(30)
        self.info_nodes.setMaximumHeight(30)
        self.info_edges = QLabel(self)
        self.info_edges.setMinimumHeight(30)
        self.info_edges.setMaximumHeight(30)
        self.info_p = QLabel(self)
        self.info_p.setMinimumHeight(30)
        self.info_p.setMaximumHeight(30)
        self.info_clustersize = QLabel(self)
        self.info_clustersize.setMinimumHeight(30)
        self.info_clustersize.setMaximumHeight(30)

        self.infobar.addSpacerItem(
            QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.infobar.addWidget(self.info_p)
        self.infobar.addWidget(self.info_nodes)
        self.infobar.addWidget(self.info_edges)
        self.infobar.addWidget(self.info_clustersize)
        self.infobar.addSpacerItem(
            QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.layout.addLayout(self.infobar)

        info = QLabel(self)
        info.setMinimumHeight(30)
        info.setMaximumHeight(30)
        info.setText(
            "Press +/- to zoom, WASD for panning or Q/E for rotating.")

        infolayout = QHBoxLayout()
        infolayout.addSpacerItem(
            QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
        infolayout.addWidget(info)
        infolayout.addSpacerItem(
            QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.layout.addLayout(infolayout)

        self.setMinimumSize(300, 300)
예제 #2
0
    def __init__(self, arguments=None, initial_topics=None):
        super(RosplotWidget, self).__init__()

        ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                               '../../resource/plot_widget.ui')
        loadUi(ui_file, self)

        self.subscribe_topic_button.setIcon(QIcon.fromTheme('add'))
        self.remove_topic_button.setIcon(QIcon.fromTheme('remove'))
        self.clear_button.setText('Remove all Topics')

        self.subscribe_topic_button.setEnabled(False)

        self.zoom_button.setText('Zoom: On ')

        # Topic Tree and Topic Completer
        self.ros_topic_tree = RosTopicTree(self)
        self._topic_completer = TopicCompleter(self)
        self._topic_completer.setModel(self.ros_topic_tree)
        self.topic_edit.setCompleter(self._topic_completer)
        self.connect(self.topic_edit, SIGNAL("tabPressed"),
                     self.on_topic_edit_tabPressed)

        # the rosstuff
        self._start_time = rospy.get_time()
        self._rosdata = {}

        self._remove_topic_menu = QMenu()

        # init and start update timer for plot
        self._update_plot_timer = QTimer(self)
        self._update_plot_timer.timeout.connect(self.update_plot)
        self._update_plot_timer.start(self._redraw_interval)

        # graph window
        self.graph_widget = GraphWidget(self)
        self.graph_widget_layout.addWidget(self.graph_widget)
        QObject.connect(self.graph_widget,
                        SIGNAL("legendChecked(QwtPlotItem *,bool)"),
                        self.legend_clicked)

        self.subscribed_topics_changed()
        self.show()
예제 #3
0
from PyQt5.QtCore import (qsrand, QTime)

from PyQt5.QtWidgets import QApplication

from graph_widget import GraphWidget

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    app.setApplicationName('Endue')

    qsrand(QTime(0, 0, 0).secsTo(QTime.currentTime()))

    widget = GraphWidget()
    widget.show()

    sys.exit(app.exec_())