Pyqt5,AttributeError:模块'x_ui'没有属性'Ui_x'

Posted

技术标签:

【中文标题】Pyqt5,AttributeError:模块\'x_ui\'没有属性\'Ui_x\'【英文标题】:Pyqt5, AttributeError: module 'x_ui' has no attribute 'Ui_x'Pyqt5,AttributeError:模块'x_ui'没有属性'Ui_x' 【发布时间】:2018-02-20 01:18:52 【问题描述】:

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

该项目包括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】:

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

class Ui_Dialog(object):

所以你必须使用那个类:

class HelloWorld(QDialog, HelloWorld_ui.Ui_Dialog):

名字由你给QDialog的名字生成:

如果你想使用HelloWorld,你必须改变它:

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

【讨论】:

以上是关于Pyqt5,AttributeError:模块'x_ui'没有属性'Ui_x'的主要内容,如果未能解决你的问题,请参考以下文章