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)
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()
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_())