Qt國際化之tr 在自定義類中翻譯無效的問題

2021-10-10 02:51:03 字數 709 閱讀 4169

參考部落格:

我自定義了乙個mydialog類,繼承自qdialog,在mydialog.h中也新增了 q_object 巨集。tr() 翻譯功能就是不生效。網上一時也找不到解決方案,心態要崩了,qaq...

仔細回想了一下整個demo的建立過程,這個demo是從以前的乙個demo中擴充套件過來的,mydialog類是後定義的,有一點不同的是:原來ts檔案中不包含mydialog類的翻譯文字。因為只需要翻譯1個文字,因此沒有使用qt自帶的語言家進行增量翻譯,手動修了 ts 檔案,再用修改後的 ts 檔案生成了新的 qm 翻譯檔案,進行測試,結果,涼涼....

回去仔細看了一下ts檔案的結構,

發現乙個特殊的標籤:mainwindow,mainwindow是ui類的類名,突然就明白了。我們都知道tr()最終是呼叫:

實現翻譯的,translate函式有乙個引數cantext:官方原文:context is typically a class name,問題找到了。修改 ts 檔案,為mydialog類新建乙個... 節點,如下:

編譯、測試,果然解決了問題。

嗯,把這坑埋了...

IA自定義panel國際化

繼承customcodeaction很容易國際化,這裡不做過多的說明。而如果繼承customcodepanel,如何進行國際化呢?答案如下 如 在public boolean setupui customcodepanelproxy customcodepanelproxy 中 使用customco...

自定義實現struts2中的國際化機制

最近一段時間,一直在研究struts2中的國際化實現方案.對於struts2中標籤的國際化中,key值的搜尋順序如下 假設我們在某個childaction中呼叫了gettext user.title struts 2.0的將會執行以下的操作 1 優先載入系統中儲存在childaction的類檔案相同...

qt序列化自定義物件 Qt之建立自定義型別

摘要 簡述 當使用qt建立使用者介面時,特別是那些帶有特殊控制和特徵的介面時,開發者通常需要建立新資料型別來擴充套件或替換qt現有的的值型別集合。標準型別,比如 qsize qcolor和qstring都可以被儲存到qvariant物件中,在基於qobject的類中可用作屬性的型別,並且可以在訊號 ...