是否可以在命令行中导出GRC流程图的屏幕截图?

问题描述 投票:0回答:1

我的问题是什么?

是否可以在命令行中导出 gnuradio-companion 流程图的屏幕截图? 命令

grcc
提供了将
.grc
流程图文件编译为 python 文件的功能。但它不提供将图形导出为屏幕截图的功能,这在您使用 gnuradio-companion GUI 时是可能的(使用
Ctrl-P
)。

我需要这个做什么?

我目前正在使用一堆

.grc
流程图,并将它们存储在 gitlab 中。我想建立某种管道,生成这些 grc 文件的屏幕截图,以便与我合作的人可以查看 gnuradio 流程图,而无需安装 gnuradio。因此,为此,我需要具备使用某种脚本从命令行生成屏幕截图的能力。

查看 gnuradio 源代码this是我找到的唯一对屏幕捕获的引用,即使我找到可以生成屏幕捕获的代码,我也不知道如何使用它来创建一个仅生成一个独立的脚本屏幕截图。

python qt gnuradio gnuradio-companion
1个回答
2
投票

好的,现在对我有用的解决方案是使用虚拟 X 服务器(带有 Xvfb)并手动执行导出功能。脚本看起来像这样:

#!/bin/bash

if [ -z "$1" ];
then
    echo "Usage: $1 [flowgraph .grc file]"
    echo "This script outputs an output.png file"
    exit 1
fi

DISPLAY=:2

echo "Starting Xvfb instance on display $DISPLAY"
Xvfb $DISPLAY &
echo "Starting GRC..."
gnuradio-companion $1 2>&1 1>/dev/null &
sleep 2
xdotool key ctrl+p
xdotool key ctrl+a
xdotool key BackSpace
xdotool type output.png
xdotool key Return
echo "Saving Screenshot..."
sleep 2
echo "Killing GRC..."
killall gnuradio-companion
echo "Killing Xvfb..."
killall Xvfb

脚本的输出称为

output.png
并将放置在当前目录中。这是一个相当老套的解决方案,但目前我没有想到更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.