我使用Qt Designer创建.ui文件,然后使用pyside-uic转换为.py文件(带有类Ui_MainWindow
的ui_mainWindow.py)。我注意不要编辑.ui或.py,因为在Qt Designer中保存更新时,任何更改都会被覆盖。所以我有自己独立的代码,应该使用python的super
功能继承它。
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
self.assignWidgets()
self.show()
我能够更新标签并回复按钮等,但我无法使用本地化翻译资料。上述类的一部分是这个函数:
def connecetSerialPushed(self):
self.label_connected.setText(self.QtGui.QApplication.translate(self, "Connected: Yes", None, self.QtGui.QApplication.UnicodeUTF8))
如果我只是做一个纯setText
和"Connected: Yes"
字符串,我就不会收到任何错误。但是执行该转换会导致错误:AttributeError:' MainWindow'对象没有属性' QtGui'。我没有得到它......我以为我继承了Ui_MainWindow
的所有内容,包括它QtGui
的导入。我错过了什么?
答案 0 :(得分:1)
在我单独的代码中,我做了
from PySide import QtGui
然后将翻译行更改为
self.label_connected.setText(QtGui.QApplication.translate("MainWindow", "Connected: Yes", None, QtGui.QApplication.UnicodeUTF8))
感谢ray清除我的困惑。