음.. 일단 분석한 내용으로는..
signal은 껍데기 이고 Q_OBJECT를 본 moc가 알아서 생성해서
slot과 연결을 해주는 듯하다
아래 코드를 보면 signals: 에는 프로토타입만 있고 실제로 구현은 보이지 않으며
connect를 보면 signal과 slot은 거의 동일한 함수 형태를 지니고
인자를 넘겨받게 되는 구조로 되어있다.
[링크 : http://qt-project.org/doc/qt-4.8/tools-customtypesending.html]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots_2]
[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/QT_Whitepaper]
            
                    
                    
signal은 껍데기 이고 Q_OBJECT를 본 moc가 알아서 생성해서
slot과 연결을 해주는 듯하다
아래 코드를 보면 signals: 에는 프로토타입만 있고 실제로 구현은 보이지 않으며
| class Window : public QWidget 
{     Q_OBJECT public:     explicit Window(QWidget *parent = 0); signals:     void counterReached(); private slots:     void slotButtonClicked(bool checked); private:     int m_counter;     QPushButton *m_button;}; | 
connect를 보면 signal과 slot은 거의 동일한 함수 형태를 지니고
인자를 넘겨받게 되는 구조로 되어있다.
| Window::Window(QWidget *parent) : QWidget(parent) 
{     // Set size of the window     setFixedSize(100, 50);     // Create and position the button     m_button = new QPushButton("Hello World", this);     m_button->setGeometry(10, 10, 80, 30);     m_button->setCheckable(true);     // Set the counter to 0     m_counter = 0;     connect(m_button, SIGNAL(clicked(bool)), this, SLOT(slotButtonClicked(bool)));     connect(this, SIGNAL(counterReached()), QApplication::instance(), SLOT(quit())); } void Window::slotButtonClicked(bool checked) {     if (checked) {         m_button->setText("Checked");     } else {         m_button->setText("Hello World");     }     m_counter ++;     if (m_counter == 10) {         emit counterReached();     }} | 
아무튼.. 원칙(?)적으로는 각종 핸들러를 만들어주고 생성하고 연결해야 하나
그렇게 되면 코드가 막 꼬이는 것 처럼 보일수가 있기에
이를 간결하게 하기 위해서 moc를 통해 생성하는 구조로 추측된다.
그렇게 되면 코드가 막 꼬이는 것 처럼 보일수가 있기에
이를 간결하게 하기 위해서 moc를 통해 생성하는 구조로 추측된다.
[링크 : http://qt-project.org/doc/qt-4.8/tools-customtypesending.html]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots_2]
[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/QT_Whitepaper]
'Programming > qt' 카테고리의 다른 글
| Qt for Embedded Linux 와 VNC (0) | 2014.12.11 | 
|---|---|
| qt dialog / webkit 연동 (0) | 2014.12.10 | 
| qt 프로젝트 파일 연관 (0) | 2014.11.20 | 
| QT font 관련 (0) | 2014.11.06 | 
| QT modules (0) | 2014.11.05 | 






