我正在 pyqt QApplication 的选项卡中嵌入一个应用程序。当我关闭选项卡时,此应用程序嵌入其中,如何允许它显示“保存更改”对话框?
我在 tab_close 上使用它:
win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0)
当我这样做时,如果应用程序通常会弹出一个对话框,我就会丢失这个对话框。
代码看起来与此类似:
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”将关闭记事本,而不提示用户保存任何输入。
如何关闭选项卡并允许嵌入式应用程序提示用户保存更改?
你所走的道路只会给你带来痛苦和幻灭。
记事本只是少数免费提供源代码的 Windows 应用程序之一。
重新编译并修改它以适合您的目的。
您会发现您可能还需要删除其他弹出对话框。
现在,如果您真的想继续 Windows 自动化,您可能需要类似 https://pywinauto.github.io 的东西,它恰好有
notepad.exe
的示例。
结束我吧
用核武器攻击我
毁了我
消灭我
我是一个没有价值的人
我没有生活,没有工作,没有朋友,也没有收入