차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 |
qt:start [2014/02/19 04:02] – changwoo | qt:start [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 |
---|
===== Property System ===== | ===== Property System ===== |
"[[http://qt-project.org/doc/qt-5/properties.html#qt-s-property-system|The Property System]]." 감동적임! [[http://qt-project.org/doc/qt-5/metaobjects.html#meta-object-system|Meta-Object System]]을 이용하여 getter/setter를 마치 C#의 property 처럼 사용할 수 있다. 게다가 값이 변할 때 마다 signal 까지 날려 줄 수 있다. | "[[http://qt-project.org/doc/qt-5/properties.html#qt-s-property-system|The Property System]]." 감동적임! [[http://qt-project.org/doc/qt-5/metaobjects.html#meta-object-system|Meta-Object System]]을 이용하여 getter/setter를 마치 C#의 property 처럼 사용할 수 있다. 게다가 값이 변할 때 마다 signal 까지 날려 줄 수 있다. |
| |
| |
| ===== QPointer / QSharedPointer / QScopedPointer ===== |
| [[http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/shared_ptr.htm|boost::shared_ptr]]과 작별할 때가 왔다. Qt에서도 자동으로 레퍼런스 카운팅을 해 주는 스마트 포인터 라이브러리가 제공된다. |
| |
| ==== QPointer ==== |
| [[http://qt-project.org/doc/qt-5/qpointer.html|QPointer]]는 'dangling pointer'의 위험으로부터 우리를 해방시켜 주는 멋진 스마트 포인터다. 그냥 포인터와 마찬가지지만 이 녀석은 객체가 해제되면 자신도 0를 레퍼런스한다. |
| <code cpp> |
| QPointer<QObject> qp = some_instance_out_of_my_control; |
| |
| ... (some_instance_out_of_my_contorl is deleted) ... |
| |
| if (qt) { // saviour!! |
| ... |
| } |
| </code> |
| 단, 조건은 T는 QObject를 상속 받아야 한다. |
| |
| ==== QSharedPointer ==== |
| 레퍼런스 카운팅이 되는 포인터. 그러니까 boost::shared_ptr과 동일하다. Qt 라이브러리를 쓰면서 굳이 이유 없이 boost까지 써서 라이브러리의 의존성을 높일 필요는 없다. [[http://qt-project.org/doc/qt-5/qsharedpointer.html|QSharedPointer Class]] 문서 참조. |
| |
| ==== QScopedPointer ==== |
| [[http://qt-project.org/doc/qt-5/qscopedpointer.html|QScopedPointer]]는 훨씬 가벼운 포인터다. 힙에 생성되나, 마치 스택에 생성되는 지역 변수처럼 객체를 생성해 사용할 수 있는 장점이 있다. 클래스 멤버 변수인데, 동적으로 사용하고 싶을 때는 이 스마트 포인터를 사용해 보자. |
| |
| |
| ===== PythonQt ===== |
| [[http://pythonqt.sourceforge.net/|PythonQt]]는 파이썬 스크립트를 C++에 임베딩하는 또 하나의 수단이다. 정말 boost::python과 이별할 때가 온 것 같다. |
| |
| |
| ===== Signal & Slot ===== |
| [[.:SignalsAndSlots]] 항목에서 설명. |
| |
| |
| |
| ===== Thread ===== |
| [[.:Thread]] 항목에서 설명. |
| |