pyside,Qt Designer,封装代码和AttributeError:' MainWindow'对象没有属性' QtGui'

时间:2017-02-03 04:08:35

标签: python qt pyqt pyside qt-designer

我使用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的导入。我错过了什么?

1 个答案:

答案 0 :(得分:1)

在我单独的代码中,我做了

from PySide import QtGui

然后将翻译行更改为

self.label_connected.setText(QtGui.QApplication.translate("MainWindow", "Connected: Yes", None, QtGui.QApplication.UnicodeUTF8))

感谢ray清除我的困惑。