本文整理汇总了Python中python_qt_binding.QtCore.QTimer类的典型用法代码示例。如果您正苦于以下问题:Python QTimer类的具体用法?Python QTimer怎么用?Python QTimer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QTimer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PropStatus
class PropStatus(Plugin):
def __init__(self, context):
super(PropStatus, self).__init__(context)
self.setObjectName('Status')
self._widget = QWidget()
loadUi(os.path.join(uipath, 'propagatorstatus.ui'), self._widget)
context.add_widget(self._widget)
rospy.Subscriber('/thrusters/info',ThrusterInfo,motordriver_callback)
rospy.Subscriber('/skytraq_serial',SerialPacket,gps_callback)
rospy.Subscriber('/imu/data_raw',Imu,imu_callback)
rospy.Subscriber('/scan',LaserScan,lidar_callback)
rospy.Subscriber('/mv_bluefox_camera_node/image_raw',Image,camera_callback)
rospy.Timer(rospy.Duration(2),kill)
self._update_timer = QTimer(self._widget)
self._update_timer.timeout.connect(self._on_update)
self._update_timer.start(100)
def _on_update(self):
self._widget.findChild(QListWidget, 'list').clear()
for i in ['FR','FL','BR','BL','GPS','IMU','LIDAR','CAMERA']:
pItem = QListWidgetItem(i);
if i in active:
pItem.setBackground(Qt.green);
else:
pItem.setBackground(Qt.red);
self._widget.findChild(QListWidget, 'list').addItem(pItem)
示例2: __init__
def __init__(self, parent=None):
super(XTermWidget, self).__init__(parent)
self.setObjectName('XTermWidget')
self._process = QProcess(self)
self._process.finished.connect(self.close_signal)
# let the widget finish init before embedding xterm
QTimer.singleShot(100, self._embed_xterm)
示例3: __init__
def __init__(self):
super(StatusLightWidget, self).__init__()
self.lock = Lock()
self.status_sub = None
self.status = 0
self._status_topics = []
self._update_topic_timer = QTimer(self)
self._update_topic_timer.timeout.connect(self.updateTopics)
self._update_topic_timer.start(1000)
self._active_topic = None
self._dialog = ComboBoxDialog()
self._update_plot_timer = QTimer(self)
self._update_plot_timer.timeout.connect(self.redraw)
self._update_plot_timer.start(1000 / 15)
示例4: MicoButtonsWidget
class MicoButtonsWidget(QWidget):
def __init__(self, widget):
super(MicoButtonsWidget, self).__init__()
rospkg_pack = rospkg.RosPack()
ui_file = os.path.join(rospkg_pack.get_path('mico_controller'), 'resource', 'MicoButtons.ui')
loadUi(ui_file, self)
self.start_arm_srv = rospy.ServiceProxy('mico_arm_driver/in/start', MicoStart)
self.stop_arm_srv = rospy.ServiceProxy('mico_arm_driver/in/stop', MicoStop)
self.home_arm_srv = rospy.ServiceProxy('mico_arm_driver/in/home_arm', MicoHome)
self._updateTimer = QTimer(self)
self._updateTimer.timeout.connect(self.timeout_callback)
def start(self):
self._updateTimer.start(1000) # loop rate[ms]
def stop(self):
self._updateTimer.stop()
def timeout_callback(self):
pass
# rqt override
def save_settings(self, plugin_settings, instance_settings):
pass
# instance_settings.set_value('topic_name', self._topic_name)
def restore_settings(self, plugin_settings, instance_settings):
pass
# topic_name = instance_settings.value('topic_name')
# try:
# self._topic_name = eval(topic_name)
# except Exception:
# self._topic_name = self.TOPIC_NAME
def shutdown_plugin(self):
self.stop()
@Slot()
def on_qt_start_btn_clicked(self):
rospy.loginfo(self.start_arm_srv())
@Slot()
def on_qt_stop_btn_clicked(self):
rospy.loginfo(self.stop_arm_srv())
@Slot()
def on_qt_home_btn_clicked(self):
rospy.loginfo(self.home_arm_srv())
示例5: __init__
def __init__(self, context):
super(Control, self).__init__(context)
# Give QObjects reasonable names
self.setObjectName('Control')
# Create QWidget
self._widget = QWidget()
# Get path to UI file which should be in the "resource" folder of
# this package
ui_file = os.path.join(rospkg.RosPack().get_path('robosub'),
'src/rqt/rqt_control/resource', 'Control.ui')
# Extend the widget with all attributes and children from UI file
loadUi(ui_file, self._widget)
self.control_timer = QTimer(self)
self.control_timer.timeout.connect(self.control_missed)
self.control_timer.start(1000)
self.control_status_timer = QTimer(self)
self.control_status_timer.timeout.connect(self.control_status_missed)
self.control_status_timer.start(1000)
# Give QObjects reasonable names
self._widget.setObjectName('Control')
if context.serial_number() > 1:
self._widget.setWindowTitle(self._widget.windowTitle() +
(' (%d)' % context.serial_number()))
# Add widget to the user interface
context.add_widget(self._widget)
self._widget.statusActive.hide()
self._widget.controlActive.hide()
self.con_sub = rospy.Subscriber('control', control,
self.control_callback, queue_size=1)
self.cs_sub = rospy.Subscriber('control_status', control_status,
self.control_status_callback,
queue_size=1)
img_file = os.path.join(rospkg.RosPack().get_path('robosub'),
'src/rqt/resource/robosub_logo.png')
self._widget.setStyleSheet(".QWidget {background-image: url(" +
img_file +
"); background-repeat: no-repeat;" +
"background-position:bottom right}")
示例6: RosPlot
class RosPlot(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
def __init__(self, parent, label_name,topic_name,topic_type,topic_field,buffer_size):
self.label_name= label_name
self.topic_type = topic_type
self.topic_name = topic_name
self.topic_field = topic_field
self.buffer_size = buffer_size
self.timer = QTimer()
self.timer.setInterval(100)
self.timer.timeout.connect(self.update_figure)
fig = Figure(figsize=(5, 4), dpi=100)
self.axes = fig.add_subplot(111)
# We want the axes cleared every time plot() is called
self.axes.hold(False)
self.compute_initial_figure()
self.buffer = collections.deque(maxlen=self.buffer_size)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
FigureCanvas.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
self.subscriber = RosHelper.create_subscriber_from_type(self.topic_name,self.topic_type,self.on_message)
self.timer.start()
def compute_initial_figure(self):
pass
def on_message(self,msg):
r = msg
for subfields in self.topic_field.split(".")[1:]:
r = getattr(r,subfields)
self.buffer.append(r)
def update_figure(self):
x = np.array(range(0,len(self.buffer)))
y = np.array(self.buffer)
self.axes.plot(x, y.T, 'r')
self.draw()
示例7: __init__
def __init__(self, context):
super(Battery_state, self).__init__(context)
# Give QObjects reasonable names
self.setObjectName('Battery_state')
# Process standalone plugin command-line arguments
from argparse import ArgumentParser
parser = ArgumentParser()
# Add argument(s) to the parser.
parser.add_argument("-q", "--quiet", action="store_true", dest="quiet", help="Put plugin in silent mode")
args, unknowns = parser.parse_known_args(context.argv())
if not args.quiet:
print 'arguments: ', args
print 'unknowns: ', unknowns
self._widget = QWidget()
ui_file = os.path.join(rospkg.RosPack().get_path('rqt_battery_state'), 'resource', 'qt_gui3.ui')
loadUi(ui_file, self._widget)
self._widget.setObjectName('qt_gui3')
if context.serial_number() > 0:
self._widget.setWindowTitle('Battery State')
# Add widget to the user interface
context.add_widget(self._widget)
self._update_timer = QTimer(self)
self._update_timer.timeout.connect(self._handle_update)
self._update_timer.start(1000)#time step
self.subscriber = rospy.Subscriber('/my_roomba/battery_state', BatteryState, self.subscriber_callback)
示例8: __init__
def __init__(self, plugin):
super(Theta360ViewWidget, self).__init__()
rp = rospkg.RosPack()
ui_file = os.path.join(rp.get_path('theta_viewer'), 'resource', 'Theta360ViewWidget.ui')
loadUi(ui_file, self)
self.plugin = plugin
self.position = (0.0, 0.0, 0.0)
self.orientation = quaternion_about_axis(0.0, (1.0, 0.0, 0.0))
self.topicName = None
self.subscriber = None
# create GL view
self._glview = MyGLWidget()
self._glview.setAcceptDrops(True)
# backup and replace original paint method
# self.glView.paintGL is callbacked from QGLWidget
self._glview.paintGL_original = self._glview.paintGL
self._glview.paintGL = self.glview_paintGL
# backup and replace original mouse release method
self._glview.mouseReleaseEvent_original = self._glview.mouseReleaseEvent
self._glview.mouseReleaseEvent = self.glview_mouseReleaseEvent
# add GL view to widget layout
self.layout().addWidget(self._glview)
# init and start update timer with 40ms (25fps)
# updateTimeout is called with interval time
self.update_timer = QTimer(self)
self.update_timer.timeout.connect(self.update_timeout)
self.update_timer.start(40)
self.cnt = 0
示例9: __init__
def __init__(self, mainWidget):
self.mainWidget = mainWidget
# create GL view
self._gl_view = mainWidget._gl_view
self._gl_view.setAcceptDrops(True)
self.resolution_meters = 50
self._cross = None
# backup and replace original paint method
self._gl_view.paintGL_original = self._gl_view.paintGL
self._gl_view.paintGL = self._gl_view_paintGL
self._grid_layer = GridLayer(self.resolution_meters,self._gl_view)
self._submarine_layer = SubmarineLayer(self.resolution_meters,self._gl_view)
self._coor_layer = CoorSystemLayer(self._gl_view)
self._target_layer = TargetLayer(self._gl_view)
self._path_layer = PathLayer(self.resolution_meters,self._gl_view)
self._layers = []
self._layers.append(self._grid_layer)
self._layers.append(self._submarine_layer)
self._layers.append(self._coor_layer)
self._layers.append(self._target_layer)
self._layers.append(self._path_layer)
# backup and replace original mouse release method
self._gl_view.mouseReleaseEvent_original = self._gl_view.mouseReleaseEvent
self._gl_view.mouseReleaseEvent = self.mainWidget._gl_view_mouseReleaseEvent
# init and start update timer with 40ms (25fps)
self._update_timer = QTimer(mainWidget)
self._update_timer.timeout.connect(self.update_timeout)
self._update_timer.start(100)
示例10: __init__
def __init__(self, topics):
super(HistogramPlotWidget, self).__init__()
self.setObjectName('HistogramPlotWidget')
rp = rospkg.RosPack()
ui_file = os.path.join(rp.get_path('jsk_rqt_plugins'),
'resource', 'plot_histogram.ui')
loadUi(ui_file, self)
self.cv_bridge = CvBridge()
self.subscribe_topic_button.setIcon(QIcon.fromTheme('add'))
self.pause_button.setIcon(QIcon.fromTheme('media-playback-pause'))
self.clear_button.setIcon(QIcon.fromTheme('edit-clear'))
self.data_plot = MatHistogramPlot(self)
self.data_plot_layout.addWidget(self.data_plot)
self._topic_completer = TopicCompleter(self.topic_edit)
self._topic_completer.update_topics()
self.topic_edit.setCompleter(self._topic_completer)
self.data_plot.dropEvent = self.dropEvent
self.data_plot.dragEnterEvent = self.dragEnterEvent
self._start_time = rospy.get_time()
self._rosdata = None
if len(topics) != 0:
self.subscribe_topic(topics)
self._update_plot_timer = QTimer(self)
self._update_plot_timer.timeout.connect(self.update_plot)
self._update_plot_timer.start(self._redraw_interval)
示例11: __init__
def __init__(self, parent, label_name,topic_name,topic_type,topic_field,buffer_size):
self.label_name= label_name
self.topic_type = topic_type
self.topic_name = topic_name
self.topic_field = topic_field
self.buffer_size = buffer_size
self.timer = QTimer()
self.timer.setInterval(100)
self.timer.timeout.connect(self.update_figure)
fig = Figure(figsize=(5, 4), dpi=100)
self.axes = fig.add_subplot(111)
# We want the axes cleared every time plot() is called
self.axes.hold(False)
self.compute_initial_figure()
self.buffer = collections.deque(maxlen=self.buffer_size)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
FigureCanvas.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
self.subscriber = RosHelper.create_subscriber_from_type(self.topic_name,self.topic_type,self.on_message)
self.timer.start()
示例12: __init__
def __init__(self, mcptam_namespace='mcptam'):
# Init QWidget
super(SysmonWidget, self).__init__()
self.setObjectName('SysmonWidget')
# load UI
ui_file = os.path.join(rospkg.RosPack().get_path('artemis_sysmon'), 'resource', 'widget.ui')
loadUi(ui_file, self)
# Subscribe to ROS topics and register callbacks
self._slam_info_sub = rospy.Subscriber(mcptam_namespace+'/system_info', SystemInfo, self.slam_info_cb)
self._slam_tracker_sub = rospy.Subscriber(mcptam_namespace+'/tracker_state', TrackerState, self.slam_tracker_cb)
# Initialize service call
print('Waiting for MAV services')
rospy.wait_for_service(mcptam_namespace+'/init')
rospy.wait_for_service(mcptam_namespace+'/reset')
print('Connected to SLAM system')
self._slam_init_srv = rospy.ServiceProxy(mcptam_namespace+'/init', Empty)
self._slam_reset_srv = rospy.ServiceProxy(mcptam_namespace+'/reset', Reset)
# init and start update timer for data, the timer calls the function update_info all 40ms
self._update_info_timer = QTimer(self)
self._update_info_timer.timeout.connect(self.update_info)
self._update_info_timer.start(40)
# set the functions that are called when a button is pressed
self.button_start.pressed.connect(self.on_start_button_pressed)
self.button_reset.pressed.connect(self.on_reset_button_pressed)
self.button_quit.pressed.connect(self.on_quit_button_pressed)
示例13: __init__
def __init__(self, context):
"""
:param context: plugin context hook to enable adding widgets as a ROS_GUI pane, ''PluginContext''
"""
super(Console, self).__init__(context)
self.setObjectName('Console')
self._rospack = rospkg.RosPack()
self._model = MessageDataModel()
self._proxy_model = MessageProxyModel()
self._proxy_model.setSourceModel(self._model)
self._widget = ConsoleWidget(self._proxy_model, self._rospack)
if context.serial_number() > 1:
self._widget.setWindowTitle(self._widget.windowTitle() + (' (%d)' % context.serial_number()))
context.add_widget(self._widget)
# queue to store incoming data which get flushed periodically to the model
# required since QSortProxyModel can not handle a high insert rate
self._message_queue = []
self._mutex = QMutex()
self._timer = QTimer()
self._timer.timeout.connect(self.insert_messages)
self._timer.start(100)
self._subscriber = None
self._topic = '/rosout_agg'
self._subscribe(self._topic)
示例14: __init__
def __init__(self, initial_topics=None, start_paused=False):
super(PlotWidget, self).__init__()
self.setObjectName('PlotWidget')
self._initial_topics = initial_topics
rp = rospkg.RosPack()
ui_file = os.path.join(rp.get_path('rqt_plot'), 'resource', 'plot.ui')
loadUi(ui_file, self)
self.subscribe_topic_button.setIcon(QIcon.fromTheme('list-add'))
self.remove_topic_button.setIcon(QIcon.fromTheme('list-remove'))
self.pause_button.setIcon(QIcon.fromTheme('media-playback-pause'))
self.clear_button.setIcon(QIcon.fromTheme('edit-clear'))
self.data_plot = None
self.subscribe_topic_button.setEnabled(False)
if start_paused:
self.pause_button.setChecked(True)
self._topic_completer = TopicCompleter(self.topic_edit)
self._topic_completer.update_topics()
self.topic_edit.setCompleter(self._topic_completer)
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)
示例15: __init__
def __init__(self):
print('constructor')
# Init QWidget
super(CalibWidget, self).__init__()
self.setObjectName('CalibWidget')
# load UI
ui_file = os.path.join(rospkg.RosPack().get_path('dvs_calibration_gui'), 'resource', 'widget.ui')
loadUi(ui_file, self)
# init and start update timer for data, the timer calls the function update_info all 40ms
self._update_info_timer = QTimer(self)
self._update_info_timer.timeout.connect(self.update_info)
self._update_info_timer.start(40)
self.button_reset.pressed.connect(self.on_button_reset_pressed)
self.button_start.pressed.connect(self.on_button_start_calibration_pressed)
self.button_save.pressed.connect(self.on_button_save_calibration_pressed)
self._sub_pattern_detections = rospy.Subscriber('dvs_calibration/pattern_detections', Int32, self.pattern_detections_cb)
self._sub_calibration_output = rospy.Subscriber('dvs_calibration/output', String, self.calibration_output_cb)
print('reset')
self.on_button_reset_pressed()
print('reset done')