문제

나는 페인트 프로그램을 작성하려고 노력하고 있습니다 (마우스 프레스/홀드가 감지되는 페인트). QT를 사용하는 데 어려움이 있습니다. QPainter. 나는 그들의 웹 사이트에서 문서를 읽었으며 여전히 길을 잃었습니다. 웹 사이트에없는 튜토리얼 링크는 좋거나 QT 에서이 작업을 수행 할 수있는 방법을 설명 할 수 있습니다. 내가 관리 한 유일한 것은 위젯의 페인트 점입니다.

도움이 되었습니까?

해결책

을 체크하다 갈겨 쓰다 QT와 함께 제공되는 예는 원하는 것을 정확하게 수행합니다.

마우스 이벤트 핸들러를 다시 구현하여 드로잉, 페인트 이벤트 핸들러를 구현하여 응용 프로그램을 업데이트하고 이벤트 핸들러를 사용하여 응용 프로그램의 모양을 최적화합니다. 또한 응용 프로그램을 종료하기 전에 가까운 이벤트를 가로 채기 위해 Close Event Handler를 상환합니다.

이 예제는 QPainter를 사용하여 이미지를 실시간으로 그리는 방법과 위젯을 다시 칠하는 방법을 보여줍니다.

다른 팁

Qtassistant를 사용하고 QPainter의 항목을 찾아보십시오. 거기에서 QPainter의 다양한 기능을 사용하는 예제 프로그램에 대한 링크가 표시됩니다. http://doc.trolltech.com/4.5/painting-basicdrawing.html

Qtassistant는 최고의 자원이어야합니다. 매우 철저합니다. 그렇다면 도움이되지 않으면 포럼을 추천합니다. QTCENTRE. 그것들은 지식이 풍부한 사람들입니다.

나는 당신의 문제가 무엇인지 추측 할 수 있지만, 당신이 Paintevent가 페이지를 업데이트하는 데 사용된다는 사실의 오래된 문제에 빠지는 것입니다. 페인트 프로그램을 구현하는 방법은 먼저 드로잉 버퍼로 QPIXMAP 또는 QIMAGE를 작성하는 것입니다. 그런 다음 마우스에 페인트를 페인트합니다. 도면 버퍼를 업데이트했을 때 모든 업데이트 (그리고 좋은 소년이되어 업데이트가 필요한 영역을 나타냅니다). 그러면 Paintevent 방법으로 호출을 유발할 수 있습니다. 여기서 요청한 사각형 (qpaintevent :: rect ())를 화면에 단순히 블립합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top