簡體   English   中英

如何設計具有Qt前端和可分離后端的程序?

[英]How to design a program with Qt frontend and separable backend?

我想為程序開發Qt前端 ,該程序也需要從命令行使用。 首先,我想使用參數解決此問題(如果設置了該參數,則將創建UI,否則只需在std::out上編寫),但我感覺應該將那些組件分開,並為后端邏輯 (如果可能,使用純c ++)。 在這種情況下,Qt程序可以讀取並了解后端的輸出。 仍然可以根據需要單獨運行后端,並將其結果寫入std::out

從前端調用后端程序而不阻塞的最優雅方法是什么?

我對此的第一個想法是創建一個子進程,並使用exec調用后端,然后,如果后端完成,它應該向前端發出信號並阻塞,直到前端完成讀取為止,在此處讀取可以通過管道或類似方法完成那。

這是一個好方法嗎? 還有其他實施技巧嗎?

Qt具有允許異步執行的多種功能:

  • 信號和時隙 :比回叫更健壯的通信方式。 您可以稍后使用排隊連接觸發插槽
  • Qt並發 :基本上允許您在線程池中運行一些方法。
  • 檢查此清單

我的想法是將后端設計為API。 具體來說,在每個組件中,您需要一個對象子集(也許只有一個),所有與外部組件的通信都將通過這些對象。 避免在前端內部放置太多邏輯,並避免基於視覺外觀編寫后端。 :P有點模糊。

如果我是你,我會選擇兩種解決方案之一。

首先,Linux的“一切都是文件”思路:創建兩個文件,后端和前端會定期檢查這些文件,其中一個文件是前端向后端詢問數據或執行某些操作。 一種是您輸出查詢結果的位置。 您可以使用XML來具有“結果”字段和“請求ID”字段。

其次,您可以在客戶端服務器配置中編寫它們,並且出於安全目的,讓服務器綁定到127.0.0.1。

祝好運 :)

您可以使用QxORM(基於Qt的ORM)。

暫無
暫無

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

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