2013-01-10 48 views
1

我正在實現我已經有的狀態機的圖形表示。我的問題是,如何使用PyQT生成圖形表示?所以更清楚地說,我想要一個窗口來顯示各州的狀態和過渡。 這可能沒有手動繪製每個狀態或建立我自己的狀態圖庫?pyqt qstatemachine圖形表示

謝謝。

回答

0

看看Graphviz,這是一套圖形佈局工具和庫,它被很多其他程序用於繪製圖形,如Doxygen和KCacheGrind。

您可以使用它作爲庫,以鏈接;或者寫出一個文件,調用可執行文件來處理它並重新讀取文件。第二種方法(文件寫入/處理/讀取)是最常用的方法。

要做到這一點,你:

  1. 撰寫出點格式的圖形(你的FSM)(簡單的文本格式)。
  2. 呼叫dot(的graphviz的工具之一)與輸出格式爲dot,這將佈局信息附加到文件
  3. 讀點文件備份並使用位置信息

有包括Python在內的幾個庫,請參閱pydot

+0

好吧,這有點複雜。我對這一切都很陌生。你知道計算機程序員非常懶惰,這就是爲什麼我們要編寫程序,以便機器爲我們做。 無論如何,是不是有一種更簡單的方法來做fsm可視化,或者至少有一個關於如何在讀取代碼後將點格式文本鏈接到我的代碼的例子?再次感謝! – Bedeir

+0

如果你只是想要一個圖像(不是互動),然後點可以使[PNG](http://www.graphviz.org/content/output-formats#dpng)圖像,然後你可以顯示在一個QLabel與[setPixmap](http://doc.qt.digia.com/qt/qlabel.html#pixmap-prop)。 –

+0

感謝您的幫助,經過一番試驗,我設法做到了。乾杯! – Bedeir