小编Kth*_*agn的帖子

关闭时不会调用子窗口小部件的 closeEvent

要么我不完全理解 Qt 的事件传播是如何工作的,要么是其他什么,但我无法理解为什么 QPushButton 派生类和 QWidget 派生类本身都没有调用 closeEvent。

wid.closeEvent() 不应该触发所有子部件的 closeEvents 吗?

#!/bin/env python
# -*- coding: utf-8 -*-
import sys, os
from Qt.QtCore import *
from Qt.QtWidgets import *
from Qt.QtGui import *

class butt(QPushButton):
    def __init__(self, parent, name='Button'):
        super(self.__class__, self).__init__(parent)
        self.name = name

    def closeEvent(self, e):
        print('butt closeevent')
        e.accept()


class wid(QWidget):
    def __init__(self, parent=None):
        super(self.__class__, self).__init__(parent)
        self.initUI()

    def initUI(self):
        #self.setAttribute(Qt.WA_DeleteOnClose)
        self.vl = QVBoxLayout(self)
        self.button = butt(self)
        self.button.setText('test1')
        self.vl.addWidget(self.button)
        self.button.clicked.connect(QCoreApplication.quit)

    def closeEvent(self, e):
        print('wid closeevent')
        e.accept()


def show():
    app …
Run Code Online (Sandbox Code Playgroud)

python pyside

4
推荐指数
1
解决办法
3347
查看次数

标签 统计

pyside ×1

python ×1