【问题标题】:Launch a roslaunch file using a push button in Qt (PyQt)使用 Qt (PyQt) 中的按钮启动 roslaunch 文件
【发布时间】:2018-10-18 04:56:21
【问题描述】:

我正在尝试为我创建的基于 ROS 的程序制作 GUI。我想做一个按钮来启动一个 roslaunch 文件。有这个命令吗?或者也许一个示例程序会有所帮助。

【问题讨论】:

    标签: python qt pyqt ros qtgui


    【解决方案1】:

    如果你想使用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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多