프로그래밍과 잡담

MFC 와 Qt4.5의 사용방법의 차이.. 본문

프로그래밍/Qt

MFC 와 Qt4.5의 사용방법의 차이..

크레온 2009. 6. 17. 01:31
그냥 간단한 사용방법의 차이이다.

간단한 버튼을 클릭하면 메시지 박스 나오게 하는것이다.

MFC로는 대화상자로 하는게 있고 일반 화면으로 하는게 있는데 일반 도큐먼트로 할려면 짜증이나서

그냥 나는 대화상자로 했다..


MFC경우는 대화상자를 만든다음에 버튼 배치하고 더블클릭하면 자동으로 이벤트가 생성되서 만들어지는데

그거기에 소스 코드 넣으면 된다.

위에 잡다한 코드 있는데 그건 생략

void CMFCButtonTestDlg::OnBnClickedButton1()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    AfxMessageBox(L"버튼 클릭",MB_OK,0);
}

대화상자로 해서 위에 처럼 간단하게 되는데 일반 도큐먼트는 잘 모르겠어서...
그다음은 Qt4에서 하는 방법은


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
   
    QPushButton* PB;
   
    PB = new QPushButton;
       
    PB->setText("button");
    PB->show();
   
    Message c;
   
    QObject::connect(PB,SIGNAL(clicked()),&c,SLOT(MessageBox()));
   
    return a.exec();
}

Qt는 위와 같이 한다.
connect는 qt에서 사용하는건데 각 객체하고 연결을 하는 역활을 한다.
PB쪽은 신호를 보내는쪽
SIGNAL 객체에서 신호, 사용자가 클릭을 하거나 드래그를 했을때 움직임이다.
&c는 신호를 받는쪽이다.
SLOT은 신호가 오면 해당 메소드를 호출한다.

class Message : public QWidget
{
    Q_OBJECT
   
public:
    Message(){}
   
public slots:
    void MessageBox();
     
};

이렇게 사용자 클래스를 만들어 줘야한다. 안만들어주고 하면 저거 해도 동작을 안한다.

Qt는 객체와 객체끼리의 동작을하는것같다.. 내가 Qt를 제대로 안살펴봐서 잘은 모르겠으나 위와 같이 객체와 객체끼리의 동작을 한다..

반면에 MFC는 좀 어정쩡한게 이상하다.
물론 자동화가 많이 되어있지만 프로그래머를 오히려 불편하게 만드는게 많다.

MFC를 하면서 느낀점은 win32API와  매우 비슷하다.
물론 API보다야 사용하기는 쉽지만, 뭔가 이상하다는 느낌이든다.. 요즘에는 이것보다는 C#인가 뭔가를 많이 사용한다는데..
별로 해보고 싶진 않지만... 코드같은거 보면 자바하고 매우 흡사하다는 느낌이다.


왼쪽이 MFC 오른쪽이 Qt

반응형

'프로그래밍 > Qt' 카테고리의 다른 글

[Qt] 그림 파일  (0) 2009.06.26
[Qt] QListWidget 메소드 중 takeItem에 관하여  (0) 2009.06.25
[Qt] Ui 에디트 사용  (0) 2009.06.20
[Qt 설치법] 이클립스에서 사용하기  (0) 2009.03.31
Qt 4.5 출시  (0) 2009.03.31
Comments