프로그램 초보입니다.

Qt로 연습을 하고 있는데 paintEvent 관련해서 이해가 안가는 부분이 있어서요.

 

코드는 아래와 같습니다.

 

#include <QApplication>
#include <QWidget>
#include <QFont>
#include <QPushButton>
#include <QtDebug>

class MyWidget : public QWidget
{
public:
    MyWidget(QWidget *parent = 0);
   
    void paintEvent ( QPaintEvent * event )
    {
     count ++;    
    
     qDebug()<<"MyWidget's paint event!!(count:"<<count<<")"; 
     }

private:
  QPushButton *quit;    
  int count;
};

 

MyWidget::MyWidget(QWidget *parent) : count(0),QWidget(parent)
{
  setFixedSize(200,200);
  
  quit = new QPushButton(tr("Quit"), this);
  quit->setGeometry(62,40,75,30);
  quit->setFont(QFont("Times", 18, QFont::Bold));
  
  connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
 
}

int main (int argc, char **argv)
{
  QApplication app(argc, argv);
 
  MyWidget widget;
  widget.show();
 
  return app.exec();
}

 

이 코드를 실행을 시켜보면 조그만 윈도우에 Quit 버튼이 하나 보이는데 마우스를 Quit 버튼 영역으로 들어갔다 나왔다를 하면 그때마다 paintEvent의 Count가 하나씩 증가됨을 알 수 있습니다. paintEvent는 MyWidget에서 호출이 되고 있는데 왜 Quit 버튼위로 마우스를 이동시 호출이 되면서 count가 하나씩 증가되는지 이해가 안갑니다.

고수님들의 설명 부탁합니다.