【问题标题】:simple graphical program简单的图形程序
【发布时间】:2012-08-02 04:54:37
【问题描述】:

我制作了一个小型 C++ 网络应用程序。它将数据包交换输出到一个文件中。输出如下所示:

From..to..message
1 2 "hi"
2 3 "hi"
3 2 "hi back"
2 1 "hi back"

所以第一个字段是源,第二个是目的地,第三个是消息。 我一共有10个节点,全部显示在一行(0...1...2...etc...9),每条输出线对应连续节点之间的一条消息。

我的问题是随着输出变得越来越大,输出并不那么容易阅读。我想要一个非常小的应用程序(例如,在 java 或 qt 中,无论哪个需要较少的行来实现),它从该输出中读取并从中生成一个小型 GUI 应用程序,以便所有节点都出现在 GUI 中窗口(从 0 到 9,等距,环绕),每次我按右箭头(向前)或左箭头(向后)时,它都会从输出中读取一行,并显示一个从源到目标的箭头,并且在那个箭头上会显示消息。 所以是这样的:

              hi
0     1     2---->3     4     5     6     7     8     9 

我愿意接受有关 GUI 描述的其他建议,我根本不是图形设计师,我只知道我想要一个 GUI 来使我的输出更易于解释。 如果输出结构更易于解析,也可以更改为其他结构。

【问题讨论】:

  • 是的,这是可能的。你的问题是什么?
  • 我的问题是它做起来有多容易,哪个框架会让它变得更容易,如果真的很容易,那么怎么做,这样一个程序的一般结构是什么。我是 GUI 编程的新手,所以我想要一些指针。我不想花太多时间在上面,最多说一两个小时。这只是为了帮助我阅读我的输出文件。
  • 使用GraphViz 为您可视化它而不是自己编写GUI 程序怎么样?由于您可以修改输出格式以适应 GraphViz 的输入格式,因此您将花费更少的时间。
  • 是的,我可以修改输出格式,并且我愿意接受关于最佳和最简单解决方案的建议。但是我不知道graphviz。这个容易用吗 ?它是否允许“视频”模式,图形可以随时间演变,还是只是一个图像?因为如果它只是一个静态图,你将如何表示与两个节点的不同消息交换?此外,我的输出应该是什么样子的?
  • 易于使用:有关输入格式的简单示例,请参见Drawing graphs with dot 的第 3 页。 “视频”模式:生成多个图像并使用任何具有幻灯片功能的图像查看器。

标签: java c++ qt networking


【解决方案1】:

你可以试试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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多