簡體   English   中英

Qt中的信號共享架構

[英]Signal sharing architecture in Qt

使用MVC,我有幾個視圖類,所有這些都需要寫入事件日志。 事件日志包含一個名為addEntry的插槽,該插槽將數據寫入日志。 我正在努力實現信號。 我不想將事件日志對象傳遞給每個類。 我也是...

1)在每個類中創建本地信號,然后讓我的主窗口將它們全部連接起來? 2)我可以將插槽設為靜態,以便所有視圖都可以訪問它而無需事件日志對象嗎? 3)創建一個信號並將其作為函數指針傳遞到每個類中,以便它們都可以使用相同的信號? 4)還有什么?

謝謝。

  1. 最多見下文。
  2. 否。插槽必須與類實例相關聯
  3. 我懷疑交通部是否會理解這一點,而且看起來不必要地復雜。
  4. 原則上,您可以讓事件沿父/子層次結構傳播,並讓主窗口編輯日志,但這也太復雜了。

假設您的視圖類繼承自QAbstractItemView,則它們已經具有可以使用的信號,特別是如果您使用Q * Widget便利類。 在您的情況下,如果這對我不起作用,請執行1)。 您可能還考慮了來自模型類的信號-畢竟,更新實際上是在這里進行的。

您不能在事件記錄類中設置靜態成員函數來檢索事件記錄實例的ptr嗎? 如果僅此而已,則返回一個全局實例,

靜態EventLogger * EventLogger :: getLoggerInstance();

如果您有多個事件記錄器,則更為細微。

靜態EventLogger * EventLogger :: getLoggerInstance(args,...);

如果視圖需要掛入事件日志記錄,則它將檢索事件日志記錄實例並連接到該實例。

暫無
暫無

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

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