Запустите файл roslaunch, используя кнопку в Qt (PyQt) - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь создать графический интерфейс для программы на основе ROS, которую я создал. Я хочу сделать кнопку, которая запустит файл roslaunch. Есть ли команда для этого? Или, может быть, вам поможет пример программы.

1 Ответ

0 голосов
/ 30 мая 2018

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

...