使用 QT creator 在树莓派上通过 Wifi 执行简单的终端命令

Posted

技术标签:

【中文标题】使用 QT creator 在树莓派上通过 Wifi 执行简单的终端命令【英文标题】:Executing simple terminal commands through Wifi on raspberry pi using QT creator 【发布时间】:2017-11-17 14:34:02 【问题描述】:

我正在尝试为一个学校项目编写一个程序,我需要在基于 linux 的平台上创建一个界面,我可以在其中单击一个按钮,然后在树莓上运行一组命令pi 通过 wifi 连接。

RPI 通过 SSH 连接,wifi 网络是由我自己的路由器创建的,PC 和树莓是唯一连接的路由器。我已经为 RPI 提供了一个静态 IP 地址,因此在 QT 之外连接到它不是问题。

我的问题是,我找不到使用 QT 中的按钮在 RPI 上执行单个命令的方法。

【问题讨论】:

你有一个显示按钮的程序吗?向我们展示源代码。每当调用按钮的回调时,您都可以使用system() 执行命令(例如“ssh raspi some_command”)。 我愿意。它只是一个简单的程序,显示了 4 个不同的按钮,其中没有一个具有任何功能。我使用 QT 的预设项目之一到达我现在的位置。我可以简单地多次调用 system() 命令来发布到 RPI 吗?如果我使用一个 system() 调用执行了连接,那么未来的 system() 调用是否会在 RPI 上执行这些调用? 按下按钮时会调用函数吗?然后就使用我之前评论中的建议。 是的,但我在理解如何使用 system() 时遇到了一些麻烦。假设我想连接到 RPI,然后写入我上面的某个文件,比如“file.txt”,我想在文件中写入“hello world”,我该怎么做? @neuhaus 在对其中一个按钮的函数调用中,我尝试了这个: QString command ="ssh root@192.168.0.110";系统(qPrintable(命令)); -- 但得到一个错误“伪终端将不会被分配,因为标准输入不是终端” 【参考方案1】:

使用system() 在按钮的回调函数中执行命令。

例子:

system("ssh raspi \"/bin/echo hello world > file.txt\"");

【讨论】:

以上是关于使用 QT creator 在树莓派上通过 Wifi 执行简单的终端命令的主要内容,如果未能解决你的问题,请参考以下文章

树莓派上的 Qt OpenGL 上下文

在树莓派上的wireshark报错

树莓派上的 PySide2

Theano 在树莓派上使用 Keras

树莓派上的GPIO字符驱动程序

树莓派3上安装Qt5