Если вы хотите использовать 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 выше.