QT 문제입니다.

rain의 이미지

QT를 좀 해볼려구 라이브러리 설치하구 hello world하나 짜봤는데
잘 않되네요.

#include <qapplication.h>
#include <qpushbutton.h>

int main(int argc, char** argv)
{
        QApplication a(argc, argv);
        QPushButton* btn = new QPushButton(0);
        printf("a : 0x%X, btn : 0x%X\n", &a, btn);

        btn->show();
        printf("show tongwa\n");

        a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
        return a.exec();
}

위와 같은 코드를 다음 과 같은 Makefile로 컴파일 했습니다.

all:
        g++ -I/usr/include/qt -L/usr/lib -lqt Hello.cpp

그리고 실행을 하면

$ ./a.out
a : 0x235345, btn : 0x345345
Segmentation fault

이렇게 버튼을 show 하는 부분에서 세그먼트 폴트가 나고 맙니다.
윈도우에서 해봤을 때는 잘 되던데. 코드상으로 봐도 전혀 문제가 없어
보이구요. X설정이나 라이브러리가 잘못된건 아닌지요.
감을 잡기가 넘 어렵네요.

제 시스템 환경은
Debian Woody 구요.
libqt3-dev를 깔았구요. dselect에서 본 버전은 3.0.3이 였구요.
KDE따문에 그런지 libqt2도 깔려있긴 하더라구요.
KDE버전은 2.2.2네요...
혹시 KDE버전과 먼가 않맞아서 그런건 아닌지요....
꼭 답변 부탁드려욤....^^

cbycby의 이미지

qApplication의 setMainWidget 함수에
button의 포인터를 넘겨주셔야 합니다.
qApplication에 한개의 main widget을 넘겨주셔야 정상적으로 보입니다.

http://www.korone.net QT 커뮤니티 사이트