Bir uygulama içinde bir uygulama içine bir QQ uygulama uygulamasında katışıyorum. Sekmeyi kapattığımda, bu uygulama "Değişiklikleri kaydet" iletişim kutusunu görüntülemesine nasıl izin verdiğime nasıl yerleştirilir?win32gui kullanırken ve bir QApplication içinde gömülü bir uygulamayı kapatırken "Değişikliklerinizi kaydet" iletişimini yakalayın.
Ben tab_close bu kullanın: Ben gerçi bunu yaparken uygulama normalde bir yukarı atmak olsaydı
win32gui.PostMessage(int(wdg.process._handle),win32con.WM_CLOSE,0,0)
, ben, bu iletişim kutusunu kaybederler.
kod şuna benzer:
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
...
Bu (embedded Pencere notepad.exe ile) böyle bir UI üretir. Sekmedeki "X" i tıklamak, kullanıcıyı herhangi bir girişi kaydetmesini istemeden Not Defteri'ni kapatır.
nasıl sekmeyi kapatmak ve gömülü uygulama yaptıkları değişiklikleri kaydetmek için bir kullanıcıdan izin verebilir?
"WM_CLOSE" ifadesini "WM_QUIT" olarak değiştirirseniz fark var mı? –
@StevenRumbalski, [this] 'e göre (http://stackoverflow.com/questions/3155782/what-is-the-difference-between-wm-quit-wm-close-and-wm-destroy-in-a- windows-pr): Evet. Ama benim durumumda, ikisi de "Kaydet" i yiyorlar. iletişim kutusu – Andy
geri dönüş kodunu uygulamadan elde etmenin bir yolu var mı? Benim tahminim yakın mesajı (eşzamansız olarak) yüklemenizdir, daha sonra sekmeyi kapatırsınız (diğer uygulama için üst öğe ve bu nedenle de 'kaydetme' iletişim kutusu da), bu da her iki pencerenin kapanmasını zorlar. Kesinlikle söyleyemedim, ama önce bakacağım şey buydu. –