我制作了一个小型的C ++网络应用程序。它在文件中输出数据包交换。输出如下:
From..to..message
1 2 "hi"
2 3 "hi"
3 2 "hi back"
2 1 "hi back"
因此第一个字段是源,第二个字段是目标,第三个字段是消息。 我总共有10个节点,全部显示在行(0 ... 1 ... 2 ...等... 9),每个输出行对应连续节点之间的消息。
我的问题是输出不是那么容易阅读,因为它变得越来越大。我希望有一个非常小的应用程序(例如,在java或qt中,无论哪个需要较少的行来实现),从该输出读取并从中生成一个小的GUI应用程序,以便所有节点都出现在GUI中窗口(从0到9,间隔相等,环绕),每次按下右箭头(向前)或向左箭头(向后),它从输出中读取一行,并显示从源到目的地的箭头,并且超过该箭头将显示该消息。 所以像这样:
hi
0 1 2---->3 4 5 6 7 8 9
我对其他关于GUI描述的建议持开放态度,我根本不是一个平面设计师,我所知道的是我想要一个GUI来使我的输出更容易解释。 如果输出结构更容易解析,那么输出结构也可以更改为其他结构。
答案 0 :(得分:2)
您可以尝试GraphViz。
生成类似于
的内容 hi
1 2---->3 4 5 6 7 8 9
您应该生成纯文本文件:
digraph G {
{ rank = same; 1; 2; 3; 4; 5; 6; 7; 8; 9; };
2 -> 3 [label="hi"];
}
然后,调用dot -Tpng <text file name> -o <output image file name>
,您可以获得一个看起来像的图像:
要制作动画,您可能希望将输出格式更改为gif
,并使用其他工具制作动画GIF。