#c #user-interface #statistics #numbers #visualization
#c #пользовательский интерфейс #Статистика #числа #визуализация
Вопрос:
Я работаю с аппаратным симулятором для проекта. В конце он выводит статистику очень структурированным, но уродливым способом. Читать это может быть утомительно, поэтому я хотел бы написать графический интерфейс, который поможет мне лучше отображать это. Есть ли у кого-нибудь представление о том, какие фреймворки и виджеты я мог бы использовать, чтобы быстро и безболезненно создать что-то чистое? Я хотел бы иметь возможность перемещаться по подузлам дерева и скрывать (сворачивать) узлы, которые меня не интересуют.
Вывод статистики принимает форму, подобную этой
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 , поэтому, возможно, будет лучше, если a выберет фреймворк для этого языка. Альтернативой было бы сгенерировать выходные данные XML, а затем использовать другой язык для обработки информации.
Я не очень разбираюсь в визуальном программировании и на самом деле не знаю, какие виджеты доступны. Будем признательны за любые предложения и указания.
Комментарии:
1. Какой у вас набор инструментов для разработки — Windows, использующая Visual Studio, или что-то еще?
2. Проконсультируйтесь с вашими пользователями. Однажды я предложил создавать действительно классные диаграммы из статистических данных, но пользователи не захотели их использовать и предпочли строки и столбцы чисел (бухгалтеры).
Ответ №1:
Когда я просто пытаюсь отобразить некоторую информацию, и мне действительно не нужно взаимодействие, я иногда заставляю программу выводить простую HTML-страницу. Создавать такие вещи, как таблицы и изображения (практически в любом формате), быстро и тривиально. Если вам нужны графики, существуют веб-API, такие как chart API от Google.
Комментарии:
1. Это очень хорошая идея, я чувствую себя немного глупо, что это не пришло мне в голову. Большое вам спасибо!
Ответ №2:
Я бы рекомендовал 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
Все это довольно просто в использовании, ознакомьтесь с примерами, чтобы точно узнать, как это делается.
Комментарии:
1. Спасибо, есть ли какой-то конкретный виджет, который, по вашему мнению, подходит? Я думаю, что это окончательный вопрос. На самом деле мне не нужно делать ничего особенного с числами, мне просто нужно представить их в чистом и удобном для чтения формате. Я думаю, что простой графический интерфейс был бы более подходящим, чем делать странные вещи с выводом текста. 🙂
2. Согласен. Если Qt слишком тяжелый, вы также можете проверить wxWidgets: wxwidgets.org — wxTreeCtrl будет конкретным виджетом.
3. Выглядит полезным и простым, отличное предложение. Спасибо