首页 > 解决方案 > 'QMainWindow' 对象没有属性 'exec'

问题描述

我是 PyQt5 的新手,我正在创建一个通向主窗口的用户/密码窗口。在使用函数调用类来执行主窗口后,我遇到了这个错误:

class RPDlogin (QDialog):
    def __init__(self, parent=None):
        super(RPDlogin, self).__init__(parent)
        loadUi('RPDlogin.ui', self)

        self.buttonlogin.clicked.connect (self.RPDlogincheck)


def RPDlogincheck(self):
            if self.login_user.text() == 'nemesis' and self.login_pass.text() == 'redherbs':
                self.loginClicked()
            else:
                QMessageBox.about(self,'Error','Invalid username or password')

def loginClicked(self):
        RPD = RPDMainWindow()
        RPD.exec()

class RPDMainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(RPDMainWindow, self).__init__(parent)
        loadUi('RPDMainWindow.ui', self)

发生错误说:

AttributeError: 'RPDMainWindow' object has no attribute 'exec'

标签: pythonpython-3.xpyqtpyqt5

解决方案


由于您没有为我提供足够的工作,我会假设您的问题是PlayerIG.armor's 类型是int.

你不能迭代一个int。

这可能是不需要的,所以我建议你做一些调试,比如print(PlayerIG.armor)在那个循环之前弄清楚它的设置。然后试着找出你哪里出错了。

你确定你不是那个意思PlayerIG.armors

顺便说一句,dicts 是无序的,这意味着你的武器(以及当你开始工作时的盔甲)都将按照它们存储在内存中的顺序打印。


推荐阅读