Qt翻译函数调用错误

时间:2013-04-30 09:42:22

标签: qt4 pyqt4

在我的应用程序中,有时会出现这样的错误:

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

奇怪的是,大部分时间它都有效,error_msg总是非空字符串,所以函数真的得到2个参数。

此代码放在继承自QThread的类中,新线程正确启动并发出执行槽的信号。插槽代码失败,上面有错误。

我不能把我的代码放在这里,因为它太复杂了,我无法在较小的例子中重现这个bug。当我玩的时候,可能发生的最糟糕的事情就是空字符串,永远不会出现这样的错误。甚至QApplication也没有初始化。

因此,我不确定它是Qt4还是PyQt4问题。

有什么想法吗?

谢谢, 米甲

编辑:使用

时,我收到完全相同的消息
self.tr(error_msg)

1 个答案:

答案 0 :(得分:0)

我的同事已经解决了它。当error_msg包含非ascii字符时会发生这种情况。

解决方案(默认情况下编解码器为Latin1):

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