我一直在用PyQt5编写应用程序,当我试图在按钮交互后打开一个新窗口时,程序崩溃,并输出退出代码-1073740791。
我的代码如下所示:
class Start(QWidget):
def __init__(self):
super().__init__()
self.run()
def switch1(self):
Initiative.initRoll.show()
def startScreen(self):
startButton = QPushButton('Start')
infoButton = QPushButton('How To Use')
creditButton = QPushButton('Credits')
settingButton = QPushButton('Settings')
grid = QGridLayout()
grid.addWidget(infoButton, 0, 0)
grid.addWidget(settingButton, 0, 1)
grid.addWidget(creditButton, 0, 2)
grid.addWidget(startButton, 1, 0, 1, 3)
self.setLayout(grid)
startButton.clicked.connect(self.switch1)
self.setWindowTitle('Battletech App')
def run(self):
Start.startScreen(self)
self.show()
class Initiative(QWidget):
def initRoll(self):
initButton = QPushButton('Roll for Initiative')
grid = QGridLayout()
grid.addWidget(initButton, 2, 0, 1, 3)
self.setLayout(grid)
self.setWindowTitle('Battletech App')
def main():
app = QApplication(sys.argv)
ex = Start()
sys.exit(app.exec_())我已经弄乱了大部分代码,试图修复它,但我不确定如何修复。
发布于 2021-04-16 07:48:09
如果您希望获得更具描述性的错误消息,那么建议您从CMD或控制台运行代码。在您的情况下,它是:
Traceback (most recent call last):
File "/path/of/script.py", line 14, in switch1
Initiative.initRoll.show()
AttributeError: 'function' object has no attribute 'show'
Aborted (core dumped)原因很清楚,您正在错误地处理对象的创建。逻辑是使用类作为对象提供程序,并使用该对象调用函数(建议:查看您在OOP上的注释)。
def switch1(self):
self.initiative = Initiative()
self.initiative.initRoll()
self.initiative.show()https://stackoverflow.com/questions/67116907
复制相似问题