QTimer定时器的使用,判断ros是否关闭,ros关闭后关闭窗口
c++
#include <QApplication>
#include <ros/ros.h>
#include <QTimer>
using namespace std;
class MainWindow{
private:
QTimer timer;
public:
MainWindow(){
//定时器
timer.setInterval(10);
timer.start();
//定时信号
connect(&timer,&QTimer::timeout,this,&MainWindow::timeout);
//QObject::connect(timer, SIGNAL(timeout()), this, SLOT(timerSlot()));
}
~MainWindow(){
}
//定时的槽函数 判断ros是否关闭,ros关闭后关闭窗口
void timeout(){
//处理消息
if(ros::isShuttingDown()){
QApplication::quit();
}
}
};
python
#!/usr/bin/env python
# coding:utf-8
import rospy
from actionlib import SimpleActionServer
from demo_actions.msg import CountNumberAction,CountNumberFeedback,CountNumberResult
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QTimer
class MainWindow(QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.timer = QTimer(self)
self.timer.setInterval(100)
self.timer.timeout.connect(self.timeout)
self.timer.start()
def timeout(self):
#定时的槽函数 判断ros是否关闭,ros关闭后关闭窗口
if rospy.is_shutdown():
QApplication.quit()