从Qt Designer和PyQt开始

时间:2014-09-15 13:57:34

标签: python qt pyqt4

我喜欢Python,我听过很多关于Qt的内容,所以最近我开始创建简单的GUI应用程序。 当我通过pyuic * .ui文件转换为* .py时,一切看起来都很熟悉,可理解和合理。除了片刻。

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

然后很多行如:

MainWindow.setObjectName(_fromUtf8("MainWindow"))
self.label_5.setObjectName(_fromUtf8("label_5"))

MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.label_5.setText(_translate("MainWindow", "Surname", None))

当我创建任何应用程序时,不使用 _fromUtf8() _translate()等方法:

MainWindow.setObjectName("MainWindow")
self.label_5.setText("Surname")

一切都运作良好。

所以,这是一个问题: 我真的需要使用 _fromUtf8() _translate()方法吗?

如果是,为什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这些方法用于您应用程序的internationalization。如果您不打算以多种语言支持UI,则可以禁用Widget上的所有translatable设置。

多个小部件具有多个具有此设置的区域。例如,QLabel有4:

  • 工具提示
  • statusTip
  • whatsThis
  • 文本

如果您使用的语言使用的字符占用的字符数超过ASCII字符(使用变音符号或多字节字符进行任何想法),则会使用_fromUtf8