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'的主要内容,如果未能解决你的问题,请参考以下文章

pyqt5,接收 AttributeError:“QMainWindow”对象没有属性“browseSlot”

PyQt5 和 QML 集成问题,“findChild”返回 AttributeError

PyQt5:使用 QObject 和 QThread 时出现 AttributeError

Python:AttributeError 模块 x 没有属性 y

AttributeError:模块'win32ctypes.pywin32.win32api'没有属性'错误'

py_get_attr_impl(x,name,silent)中的R错误:AttributeError:模块'tensorflow'没有属性'placeholder'