ओएस एक्स 10.9 क्यूटी 5.2 के साथ और निम्नलिखित आवेदन कोड परक्यूटी MainWindow CloseEvent Mac पर Cmd + क्यू
#include "mywindow.h"
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyWindow w();
w.show();
return a.exec(); }
जहां MyWindow
QMainWindow
से निकला है और closeEvent(QCloseEvent*)
विधि अधिलेखित कर देता है, जब मैं आवेदन विंडो को बंद इस विधि कहा जाता है (उदाहरण के लिए विंडो (एक्स) बंद बटन पर क्लिक करें), लेकिन जब मैं मुख्य मेनू -> "छोड़ें" या "सीएमडी + क्यू" कुंजी शॉर्टकट के माध्यम से एप्लिकेशन को बंद करता हूं तो इसे लागू नहीं किया जाता है।
वेब और कई प्रश्नों को देखने से मुझे यह धारणा मिली कि एप्लिकेशन को बंद करने से सभी शीर्ष स्तर की विंडो के लिए क्लोजएवेंट का आह्वान करना चाहिए। क्या यह मामला नहीं है, या यहां कुछ गलत हो रहा है?
संपादित करें: आवेदन को बंद करने के ऊपर तरीके के अलावा, वहाँ किसी भी अन्य उदाहरण है कि मैं सामान्य रूप में खिड़की के close
घटना लागू बजाय संभाल चाहिए कि QApplication::quit
में परिणाम होगा रहे हैं? उदाहरण के लिए सिस्टम शटडाउन के बारे में क्या?
close
ईवेंट को संभालने के दौरान, मैं पुष्टि कर रहा हूं कि उपयोगकर्ता वास्तव में बाहर निकलना चाहता है और मैं सुनिश्चित करता हूं कि वापस लिखने की तरह सफाई की गई सेटिंग्स बदल रही हैं। क्या मुझे इसके बजाय विनाशक को क्लीनअप/बचत सेटिंग्स को स्थानांतरित करना चाहिए और closeEvent
में पुष्टिकरण क्वेरी करना चाहिए?
इस त्वरित और सही प्रतिक्रिया के लिए धन्यवाद, प्रारंभिक प्रश्न का पूरी तरह से जवाब दे रहा है। मैंने अपना प्रश्न थोड़ा और सामान्य होने के लिए संपादित किया, शायद आप टिप्पणी कर सकते हैं। –