<QT PostMessage 대체 사용 방법 고민>
기존 프로그램에서 메뉴를 닫을 때(FormClose())가 진행 되면 현재 Dialog를 Delete 할 수 없기 때문에 PostMessage를 이용해서 MainMenuForm에서 ExitForm() 함수가 작동하도록 해서 Event() 흐름이 끝나고 사용한 Dialog(Form)을 삭제하게 했습니다.
그러나 현재 QtTex3D에서는 Dilaog의 X버튼을 눌러 닫을 때 CloseEvent()함수를 오버로딩해서 사용하고 있는데 위의 내용과 마찬가지로 Dialog를 삭제할 수는 없습니다. MainMenuDialog에서 이런 문제점이 있었는데 이 때 QTimer::singleShot(50, mainMenuDialog, SLOT(exitDialog())); 를 이용하면 될 것 같습니다.
QTimer::singleShot은 기존 Thread와 별도록 새로운 Thread로 진행되기 때문에 기존 Event가 모두 처리되고 일정 시간이 지나면 exitDialog()함수를 호출하기 때문에 정상적으로 Dialog를 삭제할 수 있을 것으로 판단됩니다.
이 점을 이용해서 기존에 Menu처리를 할 때 Dialog 삭제에 문제가 없는제 재확인 부탁합니다. 메모리 누수가 발생하지 않도록 null point 에러가 발생하지 않도록 주의 부탁합니다.
우선 MainMenu와 Palette는 내가 관련 소스를 보고 수정이 필요하면 수정을 할 생각입니다. VectorDailog의 속도 문제로 이 것은 삭제하지 않고 MainMenu가 종료될 때 삭제하도록 처리하겠습니다
'QT and Symbian' 카테고리의 다른 글
QT Plugins 폴더 Windows 배포 문제 (0) | 2020.07.24 |
---|---|
Creator Full mode 닫는 단축키 (0) | 2015.12.31 |
Transition from Qt 4.x to Qt5 (toAscii() to toLatin1()) (0) | 2015.12.24 |
eventFilter(QObject* object, QEvent* event) 함수 사용하기 (0) | 2015.08.21 |
QTableWidget의 Item은 clear()함수로 메모리 누수 없이 삭제가 된다. (0) | 2015.07.20 |