Написание графического интерфейса для отображения статистики - PullRequest
4 голосов
/ 03 июня 2011

Я работаю с аппаратным симулятором для проекта.Он выводит статистику в конце очень структурированным, но безобразным способом.Это может быть утомительно читать, поэтому я хотел бы написать графический интерфейс, чтобы помочь мне отобразить его лучше.Кто-нибудь знает, какие рамки и виджеты я могу использовать, чтобы быстро и безболезненно создать что-то чистое?Я хотел бы иметь возможность перемещаться по подузлам дерева и скрывать (сворачивать) узлы, которые меня не интересуют.

Вывод статистики принимает вид, подобный этому


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 ]

5 голосов
/ 03 июня 2011

Когда я просто пытаюсь отобразить некоторую информацию, и мне действительно не нужно взаимодействие, я иногда заставляю программу выводить простую HTML-страницу. Быстро и тривиально делать такие вещи, как таблицы и изображения (практически в любом формате). Если вам нужны графики, есть веб-API, такие как Google chart API .

3 голосов
/ 03 июня 2011

Я бы рекомендовал 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/

EDIT

Более конкретно:
Вид дерева: http://doc.qt.nokia.com/latest/qtreeview.html
Гистограммы: http://qwt.sourceforge.net/class_qwt_plot_histogram.html

Все довольно просто в использовании, посмотрите примеры, чтобы точно узнать, как это делается.

...