gpt4 book ai didi

python - 按下按钮pyqt5后无法打开新窗口

转载 作者:行者123 更新时间:2023-12-03 08:24:07 25 4
gpt4 key购买 nike

我学习pyqt5并尝试通过单击另一个窗口中的按钮来打开一个新窗口。如果没有input()函数,它将立即关闭打开的窗口,因此我将input()保持打开状态。该窗口将打开很长时间,但随后已停止工作。有人能帮我吗 ?谢谢

import sys
from PyQt5.QtWidgets import QApplication, QPushButton,QMainWindow,QWidget
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot


class App1(QWidget):

def __init__(self):
super().__init__()
self.title = 'open window'
self.left = 60
self.top = 60
self.width = 320
self.height = 200
self.initUI()

def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)

self.show()
m.getch()
input() '''here is the problem'''

class App(QMainWindow):

def __init__(self):
super().__init__()
self.title = 'PyQt5 button - pythonspot.com'
self.left = 200
self.top = 200
self.width = 320
self.height = 200
self.initUI()

def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)

button = QPushButton('PyQt5 button', self)
button.setToolTip('This is an example button')
button.move(100, 70)
button.clicked.connect(self.on_click)

self.show()

@pyqtSlot()
def on_click(self):

app1 = QApplication(sys.argv)
ex1 = App1()
sys.exit(app1.exec_())



if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())

最佳答案

您需要保存对窗口的引用,否则在on_click()完成执行时将对其进行垃圾收集。最简单的方法是通过使用App将其存储在self

@pyqtSlot()
def on_click(self):
self.ex1 = App1()

关于python - 按下按钮pyqt5后无法打开新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47660050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com