簡體   English   中英

GUI應用程序應該在駕駛員座位上使用哪個功能?

[英]Which Function Should be in the Driver's Seat on a GUI Application?

我是一位電氣工程師,正在構建一個Python應用程序以與PSS / E(PTI Siemens的“工程師的電源系統仿真”)接口。 該程序當前包含的代碼工作方式包含一個main方法,該方法從我編寫的兩個類(在單獨的文件中)中調用方法。 在程序的各個不同步驟中,用戶都通過終端與之交互(輸入文件路徑,按Enter繼續,等等)。

我正在使用Tkinter實現GUI。 用戶將瀏覽以選擇多個文件,選擇某些選項,然后按“開始”。 然后,用戶將在程序的不同步驟與GUI交互,而不是鍵入終端。

在此程序中實現GUI的原理是什么? 我在想,一方面,我可以為GUI創建一個文件,然后從該文件啟動程序,然后在用戶按下“開始”鍵時調用main方法。 來自用戶的選項/文件路徑將作為參數傳遞給main方法。 另一方面,我正在考慮將GUI集成到我的主要方法中。 使用Tkinter小部件的類/方法創建一個單獨的文件,並根據需要從main調用它們。 其中哪一個(如果有的話)是最好的選擇,為什么? 我也有一個關於如何處理2020年1月“退役” Python 2.7的問題,因為我的代碼依賴於2.7版本。 我將在另一個問題中提出這個問題,以便對這個GUI問題進行詳細說明。 預先感謝您的輸入。

雖然可以將GUI程序編寫為按您描述的方式工作的終端程序的直接端口,但通過主程序來驅動與用戶交互的流程,大多數GUI程序被編寫為一組事件處理程序,也稱為回調函數。 因為事件循環正在使用您提供給它的處理程序來回調您。

通常,主程序只是聲明您的控件,將它們綁定到處理程序,然后啟動事件處理循環。

組織此類程序的方式有很多種,這在很大程度上取決於您的工作流程。

但是事件處理功能通常會驅動整體邏輯,而不是主程序。 這允許用戶以不太線性的方式與您的程序進行交互。

解耦事件處理邏輯並創建一個“模型”來表示程序狀態和與GUI不相關的邏輯通常很有用。 然后,事件處理程序將調用模型的函數或方法以更改程序的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM