2013-04-30 71 views
0

在我的應用程序有時有錯誤是這樣的:Qt的轉換函數調用錯誤

msg = QtGui.qApp.translate("@default", error_msg) 
TypeError: function takes exactly 5 arguments (1 given) 

奇怪的是,大部分的工作時間,ERROR_MSG總是非空字符串,因此功能真正得到2個參數。

此代碼放置在繼承自QThread的類中,新線程正確啓動併發出執行插槽的信號。上面的錯誤和插槽的代碼失敗。

我不能在這裏放置我的代碼,因爲它太複雜,我不能在較小的例子中重現該錯誤。當我玩耍時,可能發生的最糟糕的是結果是空字符串,從來沒有像這樣的錯誤。即使是QApplication未初始化。

因此,我不確定是否是Qt4或PyQt4問題。

有什麼想法?

感謝, 米哈爾

編輯:我使用

self.tr(error_msg) 

回答

0

同事時的礦井已經解決了這個問題得到了完全相同的信息。它發生在error_msg包含非ascii字符時。

溶液(編解碼器是由Latin1的默認值):

QtCore.QTextCodec.setCodecForTr(QtCore.QTextCodec.codecForName('utf-8'))