Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';功能';对象没有属性';自我';_Python_Pyqt_Pyqt5_Attributeerror - Fatal编程技术网

Python 属性错误:';功能';对象没有属性';自我';

Python 属性错误:';功能';对象没有属性';自我';,python,pyqt,pyqt5,attributeerror,Python,Pyqt,Pyqt5,Attributeerror,我有一个gui文件,我用qtdesigner设计了它,还有另一个py文件。我试图更改按钮名称或尝试在listwidget中添加项,但我没有做到这一点。我收到一条错误消息 我的代码 from gui import Ui_mainWindow import sys from PyQt5 import QtCore, QtGui, QtWidgets import main class Music(QtWidgets.QMainWindow, Ui_mainWindow): def __i

我有一个gui文件,我用qtdesigner设计了它,还有另一个py文件。我试图更改按钮名称或尝试在listwidget中添加项,但我没有做到这一点。我收到一条错误消息

我的代码

from gui import Ui_mainWindow
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
import main


class Music(QtWidgets.QMainWindow, Ui_mainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.search_button.clicked.connect(self.searchbutton)

    def searchbutton(self):
        base = main.Main()
        self.url = base.search(self.search_box.text())
        self.dict = base.get_data(self.url)
        print(self.dict)
        for i in self.dict:
        self.setupUi.self.listWidget.addItem(i)


app = QtWidgets.QApplication(sys.argv)
gui = Music()
gui.show()
sys.exit(app.exec_())
和gui.py

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_mainWindow(object):
    def setupUi(self, mainWindow):
        mainWindow.setObjectName("mainWindow")
        mainWindow.resize(413, 613)
        mainWindow.setMinimumSize(QtCore.QSize(413, 613))
        mainWindow.setMaximumSize(QtCore.QSize(413, 613))
        mainWindow.setAutoFillBackground(False)
        self.centralwidget = QtWidgets.QWidget(mainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.musics_frame = QtWidgets.QFrame(self.centralwidget)
        self.musics_frame.setGeometry(QtCore.QRect(-1, 49, 411, 441))
        self.musics_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.musics_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.listWidget = QtWidgets.QListWidget(self.musics_frame)
        self.listWidget.setGeometry(QtCore.QRect(10, 10, 391, 421))
        self.listWidget.setIconSize(QtCore.QSize(5, 5))
        self.listWidget.setGridSize(QtCore.QSize(5, 5))
        self.listWidget.setViewMode(QtWidgets.QListView.IconMode)
        self.listWidget.setObjectName("listWidget")
        #  ....
        #  ....
        #  ....
还有我的错误消息

  File "/home/yavuz/Genel/youtube-sounds/music.py", line 19, in searchbutton
    self.setupUi.self.listWidget.addItem(i)
    AttributeError: 'function' object has no attribute 'self'

当您将ui类用作mixin时,Qt设计器中的所有小部件都将作为
Music
类的实例属性添加。所以你只想:

    self.listWidget.addItem(i)

PS:并将图标/网格大小设置为合理的大小(例如,
32 x 32
),否则列表项将太小而看不见。

self.setupUi
是一种方法,没有
self
。我不是一个Qt人,所以不能说你们应该做什么。谢谢你们的回答,但这次并没有在qlistwidget中添加条目。“没有错误。”尤弗。那一定是因为self.dict中没有任何内容。不,self.dict中有名称和链接。我运行我的应用程序,在Qlineedit中写了一个特殊的名称,然后单击搜索按钮,than self.dict有名称和链接,但没有添加到Qlistwidget中@在另一个例子中,我创建了另一个dict,例如dictionary={“一”:1,“二”:2,“三”:3},我使用了它,但它没有再次添加QlistWidget。没有错误。@yunver。请仔细检查您的代码:查看我的更新答案。