问题概要
在窗体中调用子窗体出现异常闪退
解决思路
调用窗口为组件时要指定父窗口,parent要传self,调用窗口为独立窗口时(登录跳转),可以不用传递self
问题代码
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from qfluentwidgets import IndeterminateProgressRing, ProgressBar
import sys
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QTimer
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QDialog, QProgressBar
class Demo(QWidget):
def __init__(self):
super().__init__()
self.vBoxLayout = QVBoxLayout(self)
self.inProgressBar = IndeterminateProgressRing(self)
self.vBoxLayout.addWidget(self.inProgressBar,0, Qt.AlignHCenter)
self.resize(400, 400)
class ProgressDialogExample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.progress_button = QPushButton('Start Progress')
self.progress_button.clicked.connect(self.show_progress_dialog)
layout.addWidget(self.progress_button)
self.setLayout(layout)
def show_progress_dialog(self):
demo = Demo()
demo.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = ProgressDialogExample()
ex.show()
sys.exit(app.exec_())
解决思路一
实例化组件时,加入self,指定父组件
def show_progress_dialog(self):
self.demo = Demo()
self.demo.show()
解决思路二
指定父组件
class ProgressDialogExample(QWidget):
def __init__(self,parent=None):
super().__init__(parent=parent)