Pyqt5,AttributeError:module' x_ui'没有属性' Ui_x'

时间:2018-02-20 01:18:52

标签: python pyqt pyqt5 qt-designer

您好我有一个QTDesigner UI文件HelloWorld.ui,我试图将其导入项目并执行。

Project包含HelloWorld.ui文件,该文件已使用Pyuic5转换为HelloWorld_ui.py。

以下是app.py

的代码
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

import sys
import HelloWorld_ui



class HelloWorld(QDialog, HelloWorld_ui.Ui_HelloWorld):
    def __init__(self):
        QDialog.__init__(self)
        self.setupUi(self)

app = QApplication(sys.argv)
helloworld = HelloWorld()
helloworld.show()
app.exec_()

以下是错误代码

Traceback (most recent call last):
  File "/Users/rrpolak/Downloads/Pyt/app.py", line 11, in <module>
    class HelloWorld(QDialog, HelloWorld_ui.Ui_HelloWorld):
AttributeError: module 'HelloWorld_ui' has no attribute 'Ui_HelloWorld'

Process finished with exit code 1

我试图了解在python程序中调用这些文件的正确方法是什么。任何帮助表示赞赏。

项目文件位于https://drive.google.com/open?id=18tjLPiCZxTbKaiZShtgu90KyXcFukr6V

我正在使用PyQt5 / Python3.6 / Mac。

1 个答案:

答案 0 :(得分:2)

如果您检查文件HelloWorld_ui.py,您会注意到没有名为Ui_HelloWorld的类,但是类Ui_Dialog:

class Ui_Dialog(object):

所以你必须使用那个类:

class HelloWorld(QDialog, HelloWorld_ui.Ui_Dialog):

名称由您提供给QDialog的名称生成:

enter image description here

如果您想使用HelloWorld,则必须更改它:

enter image description here

再次将.ui转换为.py并再次执行它,获取以下内容:

enter image description here