Я внедряю приложение в вкладку в QApplication pyqt. Когда я закрываю вкладку, это приложение встроено в как я могу позволить ему отобразить диалог «Сохранить изменения»?Захват диалогового окна «Сохранить изменения» при использовании win32gui и закрытии встроенного приложения в 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
...
Это создает пользовательский интерфейс, как это (с notepad.exe окна встроенной). Нажатие «X» на вкладке закроет «Блокнот», не запрашивая пользователя для сохранения ввода.
Как я могу закрыть вкладку и разрешить встроенное приложение для запроса пользователя, чтобы сохранить свои изменения?
Есть ли разница, если вы изменили 'WM_CLOSE' на' WM_QUIT'? –
@StevenRumbalski, согласно [этому] (http://stackoverflow.com/questions/3155782/what-is-the-difference-between-wm-quit-wm-close-and-wm-destroy-in-a- windows-pr): Да. Но, в моем случае, обе едят «Сохранить?». Диалог – Andy
есть способ, которым вы можете получить код возврата из приложения? я предполагаю, что вы отправляете сообщение закрытия (асинхронно), затем закрываете вкладку (которая является родительской для другого приложения и, следовательно, диалогом «save»), которая заставляет оба окна закрываться. Я не мог сказать точно, но сначала я бы посмотрел. –