编写GUI以显示统计信息

时间:2011-06-03 16:01:41

标签: c++ user-interface statistics numbers visualization

我正在为一个项目使用硬件模拟器。它最后以非常结构化但丑陋的方式输出统计数据。阅读起来很烦人,所以我想编写一个GUI来帮助我更好地展示它。是否有人知道我可以使用什么框架和小部件来快速,轻松地构建干净的东西?我希望能够导航树的子节点并隐藏(折叠)我不感兴趣的节点。

统计信息输出采用这样的形式


root {
 foo = "bar";
 foo_num = 1;
 machine {
  core0 {
   fetch {
    renamed {
      none = 13559;
      flags = 3013;
      reg_and_flags = 10735;
      reg = 8430;
    }
     width[5] = {
      Minimum:                   381
      Maximum:                 17450
      Average:                 1.248
      Total Sum:               28627
      Weighted Sum:            35737
      Threshold:                   3
      [ 61.0% ] [ 61.0% ]     0     0 17450 ******************************
      [  1.3% ] [ 62.3% ]     1     1   381 
      [ 12.1% ] [ 74.4% ]     2     2  3476 ******
      [  3.1% ] [ 77.5% ]     3     3   876 *
      [ 22.5% ] [  100% ]     4     4  6444 ***********
    };
     status (total 57920) {
      [  0.0% ] rob_full = 0; { (zero) }
      [ 35.9% ] ldq_full = 20789;
      [  2.4% ] fetchq_empty = 1394;
      [  0.0% ] physregs_full = 0; { (zero) }
      [ 61.7% ] complete = 35737;
      [  0.0% ] stq_full = 0; { (zero) }
     }
   }
 }
}

已经存在一个从二进制文件创建一种树的解析器,它是用C ++编写的,所以如果为这种语言选择一个框架,也许更好。另一种方法是生成XML输出,然后使用另一种语言来处理信息。

我对视觉编程不是很熟悉,我真的不知道哪种小部件可用。任何建议和指示将不胜感激。

2 个答案:

答案 0 :(得分:5)

当我只是想显示一些信息时,我并不真正需要交互,我有时会让程序输出一个简单的html页面。执行诸如表格和图像(几乎任何格式)之类的事情都是快速而微不足道的。如果您需要图表,则可以使用Google的chart API等网络API。

答案 1 :(得分:3)

我建议 boost :: spirit :: qi 进行解析, Qt + QWT - 用于图形。它们都是C ++。 QWT (基于 Qt )有多个方便的图形小部件,开箱即用。

精神:http://www.boost.org/doc/libs/1_46_0/libs/spirit/doc/html/spirit/introduction.html
Qt:http://qt.nokia.com/products
QWT:http://qwt.sourceforge.net/

修改

更具体地说:
树视图:http://doc.qt.nokia.com/latest/qtreeview.html
直方图:http://qwt.sourceforge.net/class_qwt_plot_histogram.html

使用起来非常简单,查看样本以确切了解它是如何完成的。