python - AttributeError: 'Ui_MainWindow' object has no attribute 'setCentralWidget' PyQt5 -
i still working on gui database , have different error:
traceback (most recent call last): file "g:\python\database kast thuis\pyqt test\mainmenu_ui.py", line 84, in <module> ex = ui_mainwindow() file "g:\python\database kast thuis\pyqt test\mainmenu_ui.py", line 16, in __init__ self.setupui(self) file "g:\python\database kast thuis\pyqt test\mainmenu_ui.py", line 55, in setupui mainwindow.setcentralwidget(self.centralwidget) attributeerror: 'ui_mainwindow' object has no attribute 'setcentralwidget' i dont understand thing pyqt dont understand problem is.
the code is: (this edited version, raw version posted below)
# -*- coding: utf-8 -*- # form implementation generated reading ui file 'main_menu.ui' # # created by: pyqt5 ui code generator 5.5.1 # # warning! changes made in file lost! pyqt5 import qtcore, qtgui, qtwidgets pyqt5.qtwidgets import qapplication, qmainwindow import sys class ui_mainwindow(qtwidgets.qwidget): def __init__(self): qtwidgets.qwidget.__init__(self) self.setupui(self) def setupui(self, mainwindow): mainwindow.setobjectname("mainwindow") mainwindow.resize(387, 317) icon = qtgui.qicon() icon.addpixmap(qtgui.qpixmap("c:/users/natan samuel geldorp.remytop-pc/documents/music-note-sound-256.png"), qtgui.qicon.normal, qtgui.qicon.off) mainwindow.setwindowicon(icon) self.centralwidget = qtwidgets.qwidget(mainwindow) self.centralwidget.setobjectname("centralwidget") self.verticallayout = qtwidgets.qvboxlayout(self.centralwidget) self.verticallayout.setobjectname("verticallayout") self.gridlayout = qtwidgets.qgridlayout() self.gridlayout.setobjectname("gridlayout") self.buttonremove = qtwidgets.qpushbutton(self.centralwidget) self.buttonremove.setobjectname("buttonremove") self.gridlayout.addwidget(self.buttonremove, 10, 0, 1, 1) self.buttonshowall = qtwidgets.qpushbutton(self.centralwidget) self.buttonshowall.setobjectname("buttonshowall") self.gridlayout.addwidget(self.buttonshowall, 7, 0, 1, 1) self.buttonshowspecific = qtwidgets.qpushbutton(self.centralwidget) self.buttonshowspecific.setobjectname("buttonshowspecific") self.gridlayout.addwidget(self.buttonshowspecific, 8, 0, 1, 1) self.text = qtwidgets.qlabel(self.centralwidget) self.text.setobjectname("text") self.gridlayout.addwidget(self.text, 1, 0, 1, 1) self.label = qtwidgets.qlabel(self.centralwidget) self.label.setobjectname("label") self.gridlayout.addwidget(self.label, 3, 0, 1, 1) self.buttonadd = qtwidgets.qpushbutton(self.centralwidget) self.buttonadd.setobjectname("buttonadd") self.gridlayout.addwidget(self.buttonadd, 9, 0, 1, 1) self.buttonexit = qtwidgets.qpushbutton(self.centralwidget) self.buttonexit.setobjectname("buttonexit") self.gridlayout.addwidget(self.buttonexit, 4, 0, 1, 1) self.label_2 = qtwidgets.qlabel(self.centralwidget) self.label_2.setobjectname("label_2") self.gridlayout.addwidget(self.label_2, 2, 0, 1, 1) self.verticallayout.addlayout(self.gridlayout) mainwindow.setcentralwidget(self.centralwidget) self.menubar = qtwidgets.qmenubar(mainwindow) self.menubar.setgeometry(qtcore.qrect(0, 0, 387, 21)) self.menubar.setobjectname("menubar") mainwindow.setmenubar(self.menubar) self.statusbar = qtwidgets.qstatusbar(mainwindow) self.statusbar.setobjectname("statusbar") mainwindow.setstatusbar(self.statusbar) self.retranslateui(mainwindow) qtcore.qmetaobject.connectslotsbyname(mainwindow) def retranslateui(self, mainwindow): _translate = qtcore.qcoreapplication.translate mainwindow.setwindowtitle(_translate("mainwindow", "main menu")) self.buttonremove.settext(_translate("mainwindow", "remove album")) self.buttonshowall.settext(_translate("mainwindow", "show registerd albums")) self.buttonshowspecific.settext(_translate("mainwindow", "show specific album")) self.text.settext(_translate("mainwindow", "welcome musicdatabase version 2.1-2017")) self.label.settext(_translate("mainwindow", "please select 1 of options below.")) self.buttonadd.settext(_translate("mainwindow", "add album")) self.buttonexit.settext(_translate("mainwindow", "exit")) self.label_2.settext(_translate("mainwindow", "authors: n.s. geldorp & h. nahumury")) self.buttonexit.clicked.connect(self.buttonexit) def buttonexit(self): exit() if __name__ == "__main__": app = qtwidgets.qapplication(sys.argv) ex = ui_mainwindow() ex.show() sys.exit(app.exec_()) does see problem?
-natan
posting raw convert:
# -*- coding: utf-8 -*- # form implementation generated reading ui file 'main_menu.ui' # # created by: pyqt5 ui code generator 5.5.1 # # warning! changes made in file lost! pyqt5 import qtcore, qtgui, qtwidgets class ui_mainwindow(object): def setupui(self, mainwindow): mainwindow.setobjectname("mainwindow") mainwindow.resize(387, 317) icon = qtgui.qicon() icon.addpixmap(qtgui.qpixmap("c:/users/natan samuel geldorp.remytop-pc/documents/music-note-sound-256.png"), qtgui.qicon.normal, qtgui.qicon.off) mainwindow.setwindowicon(icon) self.centralwidget = qtwidgets.qwidget(mainwindow) self.centralwidget.setobjectname("centralwidget") self.verticallayout = qtwidgets.qvboxlayout(self.centralwidget) self.verticallayout.setobjectname("verticallayout") self.gridlayout = qtwidgets.qgridlayout() self.gridlayout.setobjectname("gridlayout") self.buttonremove = qtwidgets.qpushbutton(self.centralwidget) self.buttonremove.setobjectname("buttonremove") self.gridlayout.addwidget(self.buttonremove, 10, 0, 1, 1) self.buttonshowall = qtwidgets.qpushbutton(self.centralwidget) self.buttonshowall.setobjectname("buttonshowall") self.gridlayout.addwidget(self.buttonshowall, 7, 0, 1, 1) self.buttonshowspecific = qtwidgets.qpushbutton(self.centralwidget) self.buttonshowspecific.setobjectname("buttonshowspecific") self.gridlayout.addwidget(self.buttonshowspecific, 8, 0, 1, 1) self.text = qtwidgets.qlabel(self.centralwidget) self.text.setobjectname("text") self.gridlayout.addwidget(self.text, 1, 0, 1, 1) self.label = qtwidgets.qlabel(self.centralwidget) self.label.setobjectname("label") self.gridlayout.addwidget(self.label, 3, 0, 1, 1) self.buttonadd = qtwidgets.qpushbutton(self.centralwidget) self.buttonadd.setobjectname("buttonadd") self.gridlayout.addwidget(self.buttonadd, 9, 0, 1, 1) self.buttonexit = qtwidgets.qpushbutton(self.centralwidget) self.buttonexit.setobjectname("buttonexit") self.gridlayout.addwidget(self.buttonexit, 4, 0, 1, 1) self.label_2 = qtwidgets.qlabel(self.centralwidget) self.label_2.setobjectname("label_2") self.gridlayout.addwidget(self.label_2, 2, 0, 1, 1) self.verticallayout.addlayout(self.gridlayout) mainwindow.setcentralwidget(self.centralwidget) self.menubar = qtwidgets.qmenubar(mainwindow) self.menubar.setgeometry(qtcore.qrect(0, 0, 387, 21)) self.menubar.setobjectname("menubar") mainwindow.setmenubar(self.menubar) self.statusbar = qtwidgets.qstatusbar(mainwindow) self.statusbar.setobjectname("statusbar") mainwindow.setstatusbar(self.statusbar) self.retranslateui(mainwindow) qtcore.qmetaobject.connectslotsbyname(mainwindow) def retranslateui(self, mainwindow): _translate = qtcore.qcoreapplication.translate mainwindow.setwindowtitle(_translate("mainwindow", "main menu")) self.buttonremove.settext(_translate("mainwindow", "remove album")) self.buttonshowall.settext(_translate("mainwindow", "show registerd albums")) self.buttonshowspecific.settext(_translate("mainwindow", "show specific album")) self.text.settext(_translate("mainwindow", "welcome musicdatabase version 2.1-2017")) self.label.settext(_translate("mainwindow", "please select 1 of options below.")) self.buttonadd.settext(_translate("mainwindow", "add album")) self.buttonexit.settext(_translate("mainwindow", "exit")) self.label_2.settext(_translate("mainwindow", "authors: n.s. geldorp & h. nahumury")) everyone, if downvote, please leave reason
qt designer serves generate design of view, pyuic5 converts design python code, element must used logic, in addition recommended not modify it.
first solution:
import sys if __name__ == "__main__": app = qtwidgets.qapplication(sys.argv) ex = ui_mainwindow() w = qtwidgets.qmainwindow() ex.setupui(w) w.show() sys.exit(app.exec_()) second solution:
class mainwindow(qtwidgets.qmainwindow): def __init__(self, parent=none): super(mainwindow, self).__init__(parent=parent) ui = ui_mainwindow() ui.setupui(self) import sys if __name__ == "__main__": app = qtwidgets.qapplication(sys.argv) w = mainwindow() w.show() sys.exit(app.exec_()) third solution:
class mainwindow(qtwidgets.qmainwindow, ui_mainwindow): def __init__(self, parent=none): super(mainwindow, self).__init__(parent=parent) self.setupui(self) import sys if __name__ == "__main__": app = qtwidgets.qapplication(sys.argv) w = mainwindow() w.show() sys.exit(app.exec_())
Comments
Post a Comment