도와주세요!!
qt gui 왕초보입니다.
실행프로그램들은 /root에 컴파일이 완료되어 실행파일자체로 있습니다.
각각은 #] ./imageviewer 이와같이 실행이 되는데요
대표gui를 만들어서 버튼을 누르면 원하는 프로그램이 실행 되도록 하고 싶습니다.
예를들어 메인 gui에서
imageview버튼을 누르면 /root/imageview라는 프로그램이 실행되도록 하고 싶은데
어떻게 하면 되는지 알려주세요.
컴파일시 다음부분에서 에러가 나는데요
ImageViewer.WaitForFinished( -1 ) ;
에러 내용은 다음과 같습니다.
[root@kut Page-Ex]# make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/qt4/qt-x11/mkspecs/linux-g++ -I. -I/qt4/qt-x11/include/QtCore -I/qt4/qt-x11/include/QtCore -I/qt4/qt-x11/include/QtGui -I/qt4/qt-x11/include/QtGui -I/qt4/qt-x11/include -I. -I. -I. -o page_ex.o page_ex.cpp
page_ex.cpp: In member function ‘void Page_Ex::slot_page03_Show()’:
page_ex.cpp:59: error: ‘class QProcess’ has no member named ‘WaitForFinished’
make: *** [page_ex.o] 오류 1
위의 문장을 주석처리하고 하면 컴파일이 잘되 응용프로그램도 실행되는데
버튼을 누르면 다음과 shell에서 다음과 같은 메시지만 뜨고 응용프로그램은 실행이 안되요
QProcess: Destroyed while process is still running.
어떻게 해결하나요?
korone에서 받아온 메인창에서 다른위젯을 여는 예제 프로그램인데요
여기에 page3을 imageviewer를 실행하도록 해보았습니다.
QProcess를 이용해 보세요..
예를 들어서
님이 만들고 싶어 하시는 버튼의 슬롯 함수가
slotfunc()이라고 할께요..
void xxx(님 Class명)::slotfunc() // 요렇게 만들어 지겠죠??
{
QProcess ImageViewer ;
QString ExecuteInstruction ; // 실행 명령문이죠.. ㅋㅋ
ExecuteInstruction = "./ImageViewer -qws" ; // 실행 시키실 문장이죠??
ImageViewer.start( ExecuteInstruction ) ; // 위에서 정의한 QProcess를 실행 시킵니다..
ImageViewer.WaitForFinished( -1 ) ; // 해당 프로세스가 시간 만큼 실행 되도록 기다려 준다는 의미인데..
// -1을 넣으면.. 해당 프로세스가 종료 될 때 까지 기다립니다..
}
요렇게 하시면.. 실행 시키실 수 있을 꺼에요.. ㅋㅋ
P.S : 오타가 있을 수 있으니..안된다면.. 댓글을..ㅋㅋ
수고하세요..