gpt4 book ai didi

python - 使用 win32gui 并关闭 QApplication 中的嵌入式应用程序时捕获 "Save your changes"对话框?

转载 作者:IT老高 更新时间:2023-10-28 21:14:28 25 4
gpt4 key购买 nike

我在 pyqt QApplication 的选项卡中嵌入了一个应用程序。当我关闭该应用程序嵌入的选项卡时,如何允许它显示“保存更改”对话框?

我在 tab_close 上使用这个:

win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0)

但当我这样做时,如果应用程序通常会抛出一个对话框,我会丢失此对话框。

Missing Prompt

代码如下所示:

class MainWindow(QTabWidget):
def __init__(self, parent=None):
QTabWidget.__init__(self, parent)
self.setTabsClosable(1)
self.tabCloseRequested.connect(self.close_tab)

...

def close_tab(self,ind):
wdg = self.widget(ind)
win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0)
self.removeTab(ind)
del wdg

...

这会产生这样的 UI(嵌入了 Window 的 notepad.exe)。单击选项卡上的“X”将关闭记事本,而不提示用户保存任何输入。

Embedded Notepad in a tab

如何关闭选项卡并允许嵌入式应用程序提示用户保存更改?

最佳答案

你走在一条只会给你带来痛苦和幻灭的道路上。

记事本只是少数提供免费源代码的 Windows 应用程序之一。
重新编译并修改它以适合您的目的。

您会发现还有其他弹出对话框可能需要去掉。

现在,如果您真的想继续使用 Windows 自动化,您可能需要像 https://pywinauto.github.io 这样的东西。恰好有一个 notepad.exe 的示例。

关于python - 使用 win32gui 并关闭 QApplication 中的嵌入式应用程序时捕获 "Save your changes"对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com