python - PySide/PyQt 检测用户是否试图关闭窗口

标签 python pyqt tkinter pyqt4 pyside

有没有办法检测用户是否试图关闭窗口? 例如,在 Tkinter 中我们可以这样做:

def exit_dialog():
    #do stuff
    pass

root = Tk()
root.protocol("WM_DELETE_WINDOW", exit_dialog)
root.mainloop()

谢谢。

最佳答案

覆盖closeEvent QWidget 在你的主窗口中的方法。

例如:

class MainWindow(QWidget): # or QMainWindow
    ...

    def closeEvent(self, event):
        # do stuff
        if can_exit:
            event.accept() # let the window close
        else:
            event.ignore()

另一种可能性是使用 QApplicationaboutToQuit像这样的信号:

app = QApplication(sys.argv)
app.aboutToQuit.connect(myExitHandler) # myExitHandler is a callable

关于python - PySide/PyQt 检测用户是否试图关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9249500/

相关文章:

python - 如何将 .ui 文件转换为 .py 文件

python - 如何在 readthedocs 上正确设置 PyQt5 导入?

python - 列表框被视为Nonetype,为什么?

python - 查找后不读取所有字符

python - Beautiful Soup (bs4) 如何只匹配一个,而且只有一个,css 类

python - PyQt5 styleSheet 动画

tkinter - 使用 Tkinter 设置菜单小部件的宽度

python - python 协程超时

python - TensorFlow,批量索引(第一维)和排序

python - 在 Tkinter 中,如何更正此循环/函数,以便每个按钮将值更改为按钮的值?