본문 바로가기

분류 전체보기277

QTableWidget의 Item은 clear()함수로 메모리 누수 없이 삭제가 된다. 메모리 누수가 발생하지 않게 QTableWidget의 Item을 어떻게 삭제할까? 직접 delete item을 해야 하는지 확인을 해보았다. 아래 소스를 보면 clear()함수에서 item을 모두 삭제하고 0으로 초기화 하는 부분을 확인할 수 있다. 따라서 clear()함수만 사용하면 될 것 같다.http://nickguthrie.com/embedd_gui/src/qt-everywhere-opensource-src-4.8.4/src/gui/itemviews/qtablewidget.cpp나와 같은 질문을 올린 글이 있다. 이 글도 같은 내용이다. http://www.qtcentre.org/threads/28470-Does-QTableWidget-clear()-delete-pointers 2015. 7. 20.
Disable optimization option at some function in Visual Studio Disable optimization option at some function in Visual Studio개발을 하다보면 Debug 모드에서는 잘 작동하는 것이 Release에서는 작동이 안되는 경우가 있다. Visual Studio 컴파일 옵션을 보면 Optimization이 있다. 이것을 사용하면 확실히 실행파일에 속도 향상을 확인 할 수 있다. 하지만 optimization이 기존 소스를 수정하기 때문에 원하는 방향을 함수나 코드가 작동하지 않는 경우가 발생한다. QT 개발로 C++ Builder만 사용하다가 Visual Studio를 사용하면서 이 부분을 몰라 고생을 했다.특정 함수나 영역에 최적화가 되지 않게 처리하기 위한 방법이 있다. 함수 밖, 위에 off를 하고 함수 끝, 밖에 on을 .. 2015. 7. 10.
QT release compile error (LNK2038: mismatch detected for ‘_ITERATOR_DEBUG_LEVEL': value ‘2’ doesn’t match value ‘0’) QT release compile을 할 때 아래와 같은 에러가 발생했다.error LNK2038: mismatch detected for ‘_ITERATOR_DEBUG_LEVEL': value ‘2’ doesn’t match value ‘0’ 검색 결과 debug로 컴파일 되어 만들어진 *.lib 파일을 이용해서 release로 컴파일 할 경우에 발생한다고 한다. https://technet.microsoft.com/ko-kr/subscriptions/hh697468.aspx Source와 Project - Property Pages에서 확인을 해서 사용하고 있는 lib를 직접 editer로 읽어 보고 _ITERATOR_DEBUG_LEVEL이 존재하는지도 확인을 해 보았다.확인 결과 Qt에서 제공하는 *.. 2015. 7. 3.
QT right-click으로 popup menu 사용하기 아래 싸이트를 참고하기 바랍니다.http://www.setnode.com/blog/right-click-context-menus-with-qt/#fnref:viewportclasses간단하게 설명하면 popup menu를 추가할 위젯에 속성 중 setContextMenuPolicy를 CustomContextMenu로 변경을 합니다.signal/slot 편집기에서 widget을 선택하고 signal: customContextMenuRequested 을 이용합니다.이 signal을 받을 slot 함수를 만들어 사용하면 됩니다.slot 함수에서 QMenu를 만들고 Action을 추가해서 사용합니다.// myWidget is any QWidget-derived class myWidget->setContextMe.. 2015. 6. 18.
Visual Studio에서 QtWinExtras 사용을 위한 세팅방법 QtWin Namespace에서 제공하는 함수를 사용하기 위해서는 QtWinExtras 관련 Include와 link link를 추가하면 된다. 1. 사용하려는 cpp에 #include 를 추가한다. 2. Project Property Pages를 세팅한다. - C/C++ / General / Additional Include Directories 에 $(QTDIR)\include\QtWinExtras 경로를 추가한다. (사용자마다 경로가 다를 수 있다. Qt 설치 된 폴더에 Include를 확인하면 된다.) - Linker / Input / Additional Dependencies 에 Qt5WinExtras.lib 를 추가한다. (만약 Linker / General / Additional Direct.. 2015. 6. 17.
C++ Qt 06 - layouts, tabs and buddies Qt 레이아웃 하는 방법을 잊어 버리면 이 동영상을 다시 보길~ C++ Qt 06 - layouts, tabs and buddies 2015. 5. 29.
QFileSystemModel을 이용해서 Directory만 QTreeView에 표시하는 방법 http://doc.qt.io/qt-4.8/qt-itemviews-dirview-example.html 위의 예제를 이용하면 QFileSystemModel을 이용해서 간단하게 Dir view를 만들수 있다. 그러나 이미지를 봐서 알겠지만 Dir만 표시되지 않고 부가적인 것까지 표시가 된다. 그래서 간단하게 수정을 했다. class DirSystemModel : public QFileSystemModel { Q_OBJECT public: DirSystemModel(QObject *parent) : QFileSystemModel(parent) { this->setRootPath(""); this->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); this->sort(0, Qt.. 2015. 5. 28.
SLOT에서 SIGNAL Widget 확인하는 방법 아주 간단하다. QObject *obj = sender(); slot 함수에서 QObject::sender() 함수를 이용하면 된다. 2015. 5. 28.
How to ignore Indy component exception while debugging in C++ Builder How to ignore Indy component exception while debugging in C++ Builder (디버깅 중에 Indy component exception이 나타나지 않게 하는 방법)C++ Builder에서 Indy component를 자주 사용하는데 디버깅 할 때마다 exception 메시지가 자주 나타나 짜증이 난다. 이럴때 안나오게 하는 방법이 있다.Tools - Debugger Options - Language Exceptions 이곳에 무시하고 싶은 exception을 추가하면 디버깅 중에 나타나지 않는다.가장 흔하고 필요없다고 생각하는 것을 추가한다면EidConnClosedGraceFully EidReadTimeout EidClosedSocket 위의 것들이 아닐까.. 2015. 2. 4.