在 Qt (PyQt) 中使用按钮启动 roslaunch 文件
Launch a roslaunch file using a push button in Qt (PyQt)
我正在尝试为我创建的基于 ROS 的程序制作 GUI。我想制作一个将启动 roslaunch 文件的按钮。有这个命令吗?或者示例程序可能会有所帮助。
如果您想使用 pyqt,您可以创建一个 QPushButton
,单击它会执行正常的 roslaunch 命令。您可以设置按下按钮时要调用的函数(使用 clicked.connect()
)。在该函数中,您可以使用 QProcess
到 运行 外部可执行文件,在您的情况下将是:
roslaunch my_launch_file.launch
或您通常在终端中 运行 启动程序的任何内容。
这是一个对我有用的简单脚本(ubuntu 14.04,ros indigo):
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainLauncher( QWidget ):
def __init__(self):
QWidget.__init__(self)
mainLayout = QGridLayout()
self.launchButton = QPushButton( "LAUNCH" )
self.launchButton.clicked.connect( self.onClick )
mainLayout.addWidget(self.launchButton, 1, 1)
self.setLayout( mainLayout )
def onClick(self):
ROS_PROGRAM = QProcess(self)
print "Launching..."
program = 'roslaunch my_launch_file.launch'
ROS_PROGRAM.start(program)
if __name__ == '__main__':
app = QApplication( sys.argv )
mainLauncher = MainLauncher()
mainLauncher.show()
sys.exit(app.exec_())
如果需要,您可以将上面的 PyQt4 换成 PyQt5。
我正在尝试为我创建的基于 ROS 的程序制作 GUI。我想制作一个将启动 roslaunch 文件的按钮。有这个命令吗?或者示例程序可能会有所帮助。
如果您想使用 pyqt,您可以创建一个 QPushButton
,单击它会执行正常的 roslaunch 命令。您可以设置按下按钮时要调用的函数(使用 clicked.connect()
)。在该函数中,您可以使用 QProcess
到 运行 外部可执行文件,在您的情况下将是:
roslaunch my_launch_file.launch
或您通常在终端中 运行 启动程序的任何内容。
这是一个对我有用的简单脚本(ubuntu 14.04,ros indigo):
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainLauncher( QWidget ):
def __init__(self):
QWidget.__init__(self)
mainLayout = QGridLayout()
self.launchButton = QPushButton( "LAUNCH" )
self.launchButton.clicked.connect( self.onClick )
mainLayout.addWidget(self.launchButton, 1, 1)
self.setLayout( mainLayout )
def onClick(self):
ROS_PROGRAM = QProcess(self)
print "Launching..."
program = 'roslaunch my_launch_file.launch'
ROS_PROGRAM.start(program)
if __name__ == '__main__':
app = QApplication( sys.argv )
mainLauncher = MainLauncher()
mainLauncher.show()
sys.exit(app.exec_())
如果需要,您可以将上面的 PyQt4 换成 PyQt5。