当前位置: 首页 > 面试题库 >

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

杜俊楚
2023-03-14
问题内容

有没有一种方法可以检测用户是否试图关闭窗口?例如,在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()

另一种可能性是使用QApplication
aboutToQuit

信号,如下所示:

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


 类似资料:
  • 本文向大家介绍javascript在当前窗口关闭前检测窗口是否关闭,包括了javascript在当前窗口关闭前检测窗口是否关闭的使用技巧和注意事项,需要的朋友参考一下 在当前窗口关闭前,检测当前窗口是否关闭 在ie9中,如果刷新文档的话,unloadform和onbeforeunload都会执行,如果是关闭页面的话只会执行onbeforeunload事件 值得注意的是,onunload在关闭页面时

  • 问题内容: 标题中几乎所有问题。 是否可以(以及如何?)用JavaScript打开弹出窗口,然后检测用户何时关闭它? 我在项目中使用jquery,所以jquery解决方案会很好。干杯! 问题答案: 如果您可以控制弹出窗口的内容,请在该窗口中处理窗口的事件,并通过属性通知原始窗口,首先检查打开器是否已关闭。请注意,这在Opera中并不总是有效。 由于该事件将在用户每次离开弹出窗口中的页面时触发,而不

  • 我需要调用一个函数,在浏览器窗口关闭时从系统中记录用户。 我找到了一个函数,但在重新加载浏览器时也会调用该函数,我不希望用户在重新加载浏览器时注销。一旦浏览器窗口关闭,我就需要这样做。 这可行吗?

  • 我尝试了许多方法通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我一直未能检测到接近。和方法也不起作用。 如何在卸载前检测窗口、或

  • 我有一个GLSURFACHEVIEW,在那里我呈现我的GUI。在一种情况下,我需要用户输入一个数字,为了实现这一点,我使用了一个框架布局,上面是我的GLSurfaceView,后面是另一个虚拟布局,后面是EditText。当需要输入时,我聚焦编辑文本并强制软键盘显示。然后我听各种方法来结束输入,输入键,输入法动作完成,返回键等等。 然而,我刚刚意识到一个情况,这是不起作用的。在某些键盘上有一个“隐

  • 问题内容: 我有一个可以在iPhone和iPod Touch上运行的应用程序,可以在Retina iPad上运行,但所有其他操作都需要进行一次调整。我需要检测当前的设备是否为iPad。我可以使用什么代码来检测用户是否正在使用iPad ,然后进行相应更改? 问题答案: 有很多方法可以检查设备是否为iPad。这是我最喜欢的检查设备是否实际上是iPad的方法: 我的使用方式 其他例子