2016-04-18 6 views
0

Wie ich bereits zu diesem Stack-Überlauf Frage Thread this Stack overflow question thread bezeichnet, ich die Unterschiede zwischen zwei Codes verstehen will:Verständnis der Unterschied zwischen zwei Codes von closeevent

void MyMainWindow::closeEvent(QCloseEvent *e) 
    { 
     foreach (QWidget *widget, QApplication::topLevelWidgets()) { 
     if (widget != this) { // avoid recursion. 
      widget->close(); 
     } 
    } 
    e->accept(); 
} 

void MyMainWindow::closeEvent(QCloseEvent *e) 
{ 
    foreach (QWidget *widget, QApplication::topLevelWidgets()) { 
     if (widget != this) { // avoid recursion. 
      widget->close(); 
     } 
    } 
    e->accept(); 
    } 
    QMainwindow::closeEvent(e); 
} 

I QMainwindow::closeEvent(e); MyMainWindow::closeEvent(QCloseEvent *e) die Bedeutung der Linie wissen will, in der obige Code. Kann mir jemand helfen?

Antwort

0

Diese Zeile ruft die Superklassenfunktion nur explizit auf. Wenn Sie unterschiedliche Deklarationen von Funktionen oder Datenelementen haben, können Sie angeben, auf welche Sie sich beziehen.

Hier wird diese Funktion in QMainWindow, nur in seiner übergeordneten Klasse QWidget und man kann sehen, dass es nur Anrufe event->accept(); (source) nicht implementiert. Das bedeutet QMainwindow::closeEvent(e); macht dasselbe wie e->accept();.

Verwandte Themen