我們正在開發一個Qt桌面應用程序。應用程序可以在每個選項卡中打開一個文件,每個選項卡(文件)都有自己的上下文。用戶可以打開多個文件並在這些標籤之間切換。如何根據上下文在Qt應用程序運行時替換UI標籤/工具提示?
例如:就像卡車管理中的一個選項卡一樣,工具欄中的action(add_Vehicle)應該顯示工具提示「Add Truck」,如果另一個選項卡是Car Management,則同樣的動作應該顯示工具提示「Add Car」。
有很多事情是這樣的:「卡車成功刪除」
如果我刪除貨車(即車輛從卡車管理選項卡),它應該顯示消息框並且如果汽車(即來自汽車管理標籤的車輛)被刪除,則應顯示「汽車刪除成功」消息。
有一些對話框中的文本通過QtDesinger直接設置到QLabel。
這是怎麼產生的問題?
此前該應用程序僅支持卡車管理,現在我們在同一應用程序中添加了對汽車管理的支持。所有消息/ UI標籤/工具提示都使用「卡車」。現在我們要根據打開的選項卡(文件)來更改它。
可行思想解:(在運行時不工作)
所有UILabels /工具提示/消息是平移[即用QObject :: tr(..)]寫成。我們考慮根據選項卡上下文安裝QTranslator,它會自動更改所有地方的文本。安裝QTranslator運行時不起作用。
是否有另一種方法呢?或者任何指針/提示將非常有幫助。
有很多操作/對話框,通過這種方式,所有這些都需要訂閱到TabIndexChanged,並且頂部這不僅僅是一個文本卡車改變成汽車,還有一些更多的文本需要根據上下文來改變,這是一個矯枉過正的行爲 – EngineeredBrain
只有父Widget訂閱這些更改並設置文本可能就夠了所有需要的孩子Widgets。除非這仍然是矯枉過正? – PrisonMonkeys