我有以下代码
from PyQt5 import QtCore, QtGui, QtWidgets
from mw import Ui_MainWindow as mwin
from wd import Ui_Form as wdg
class widget(QtWidgets.QWidget):
def __init__(self,parent = None):
super(widget,self).__init__(parent)
self.ui = wdg()
self.ui.setupUi(self)
self.show()
class Main(QtWidgets.QMainWindow):
def __init__(self,parent = None):
super(Main,self).__init__(parent)
self.ui = mwin()
self.ui.setupUi(self)
self.show()
w = widget(self)
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mn = Main()
sys.exit(app.exec_())
Ui由qt designer生成,并从另一个文件导入。
当我运行代码时,主窗口和窗口小部件合并在一起,当我关闭主窗口时发生分段错误。
当我将窗口小部件中的父级设置为“无”时,问题仍然存在,但窗口小部件没有父级。
我无法理解有什么问题以及如何正确地将主窗口设置为窗口小部件的父窗口?
答案 0 :(得分:0)
这可能不是正确的方法,但有效。
解决方法:
class widget(QtWidgets.QWidget):
def __init__(self,parent = None):
super(widget,self).__init__()
self.ui = wdg()
self.ui.setupUi(self)
self.parent = parent
self.show()
class Main(QtWidgets.QMainWindow):
def __init__(self,parent = None):
super(Main,self).__init__(parent)
self.ui = mwin()
self.ui.setupUi(self)
self.show()
w = widget(self)
然后使用self.parent