2011-06-03 43 views
4

我正在使用項目的硬件模擬器。它最終以非常結構化但醜陋的方式輸出統計數據。閱讀起來很煩人,所以我想寫一個GUI來幫助我更好地展示它。任何人都會明白我可以用什麼框架和小部件來快速無痛地構建乾淨的東西嗎?我想能夠瀏覽樹和隱藏(摺疊)節點的我不感興趣的子節點。編寫一個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輸出,然後使用其他語言來處理信息。

我對視覺編程並不是非常有經驗,我也不知道什麼樣的小部件可用。任何建議和指針,將不勝感激。

+0

什麼是你的開發工具鏈 - 使用Visual Studio的窗口或其他東西? – holtavolt 2011-06-03 16:09:44

+0

與您的用戶聯繫。我建議製作非常酷的統計數據圖表,但用戶不希望他們和首選的行和列的數字(會計師)。 – 2011-06-03 16:11:09

+0

我只使用Linux和GCC – hayesti 2011-06-03 16:15:28

回答

5

當我只是試圖顯示一些信息,而我並不真的需要交互時,我有時會讓程序輸出一個簡單的html頁面。做表格和圖像之類的事情(實際上是任何格式)都很快速而且微不足道。如果您需要圖表,則可以使用Google的chart API等網絡API。

+0

這是一個非常好的主意,我覺得有點傻,它不會發生在我身上。非常感謝你! – hayesti 2011-06-03 16:22:17

3

我建議的boost ::精神::齊進行解析,並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

它的所有預tty簡單易用,請查看樣本,以確定它是如何完成的。

+0

謝謝,有沒有一個特定的小部件,你會建議適合?我認爲這是最終的問題。我並不需要對數字做任何事情,我只需要以簡潔易讀的格式展示它們。我認爲一個簡單的GUI會比用文本輸出做一些奇怪的事情更合適。 :-) – hayesti 2011-06-03 16:17:02

+1

同意。如果Qt太重,你也可以簽出wxWidgets:http://www.wxwidgets.org/ - wxTreeCtrl將是特定的部件。 – holtavolt 2011-06-03 16:17:38

+0

看起來有用和簡單,很好的建議。謝謝 – hayesti 2011-06-03 16:27:37

相關問題