사용자 도구

사이트 도구


qt:start

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
qt:start [2014/02/19 04:03] changwooqt:start [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 15: 줄 15:
 "[[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 =====+ 
 +===== 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]] 항목에서 설명.
  
qt/start.1392782602.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki