我試圖改進我的編碼方法,我想嘗試的一件事是採取TDD方法。我讀了很多關於它的文章和教程,但是經常沒有實際的例子或測試,這不會在我的大腦中停留很久,我會錯過很多細節。從主代碼中分離GUI
這就是爲什麼我試圖開發一個簡單的應用程序,使文件夾中的文件和目錄研究。但是,這是我的問題:我想使用GUI,而不是像應用程序這樣的控制檯。
我已經使用PySide爲其他應用程序,我知道它的基礎知識,但我總是避免與分離的用戶界面和主要應用功能困擾(我知道,很糟糕!)
對於TDD的做法,我覺得現在是學習如何做的恰當時機。事實上,我可以讀到用GUI做TDD的時候,圖形部分在邏輯上必須是一個「獎金層」,添加在邏輯的頂部,並且測試應該首先測試內部邏輯,然後開發人員可以手動或多或少地測試用戶界面...
所以,這裏是一個問題:如何將我的UI類(派生自使用pyside-uic生成的類)從我的程序的其餘部分中分離出來,以及如何使它們能夠通信(僅適用於簡單的應用程序數據IO)?我怎樣才能發射和使用這個課程以外的信號?
在此先感謝您的幫助和建議,希望我的英文寫作能夠讓人理解!
馬努
編輯:我的第一個想法和讀數會通過子類的QThread和與信號/槽機制通訊......這是完全必要的,這樣做的唯一途徑?
在單獨的文件中實現應用程序邏輯和功能作爲類,然後將它們導入您的GUI文件。 –
哦,是的,謝謝!我對oo設計還很不確定,所以非常感謝您的建議。因此,我分別開發/測試我的邏輯,然後,在用戶輸入需要匹配操作時,我在GUI類插槽中instanciate並使用適當的類和方法? – Manu310
非常好,是的。使用類來實現你的應用程序邏輯(如果合適的話;對每個應用程序使用類並不總是有意義的,如果它對你的用例沒有意義,你可以在不同的文件中實現函數並導入這些文件來使用函數),然後將外部文件導入到您的GUI腳本中。例如,您可以使用按鈕事件處理程序僅從這些外部類/庫中的一個調用方法。 –