QPainter 클래스 상세 설명

4741 단어 QPainter
http://www.kuqin.com/qtdocument/qpainter.html
QPainter 클래스 의 낮은 수준 으로 그립 니 다.예 를 들 어 창 위 젯 에 있 습 니 다.
그리 기 도 구 는 대부분의 그래 픽 사용자 인터페이스 프로그램 을 그 리 는 데 고도 로 최적화 된 함 수 를 제공 합 니 다.QPainter 는 간단 한 직선 에서 떡 그림 과 현 처럼 복잡 한 모양 을 그 릴 수 있다.그것 도 배 열 된 텍스트 와 픽 셀 맵 을 그 릴 수 있다.보통'자 연 스 러 운'좌표 시스템 에서 그 려 지지 만 시각 과 세계 전환 에서 도 이 를 할 수 있다.
그림 그리 기 도구 의 전형 적 인 용법 은:
  • 그림 그리 기 도 구 를 만 듭 니 다.
  • 은 화필,브러시 등 을 설치한다.
  • 그리 기.
  • 이 그림 그리 기 도 구 를 소각 합 니 다.

  • 대부분의 경우 이 모든 것 은 그림 그리 기 이벤트 에서 이 루어 집 니 다.(실제로 QPainter 의 99%는 QWidget::paintEvent()의 재 구현 에 사용 되 었 고 그리 기 도 구 는 이러한 용법 을 고도 로 최적화 시 켰 다.)이것 은 매우 간단 한 실례 이다.
    
        void SimpleExampleWidget::paintEvent()
        {
            QPainter paint( this );
            paint.setPen( Qt::blue );
            paint.drawText( rect(), AlignCenter, "The Text" );
        }
        
    

    사용 방법 이 간단 하고 사용 할 수 있 는 많은 설정 이 있 습 니 다.
  • font()는 현재 설 정 된 글꼴 입 니 다.사용 할 수 없 는 글꼴 을 설정 하면 Qt 에서 비슷 한 일치 하 는 글꼴 을 찾 을 수 있 습 니 다.실제로 font()는 setfont()를 사용 하여 설정 한 것 을 되 돌려 주 고 font Info()는 실제 사용 한 글꼴 을 되 돌려 줍 니 다.(이것 은 같 을 수도 있 습 니 다.)
  • brush()는 현재 설 치 된 브러시 로 원 의 색상 이나 팔레트 를 채 울 수 있 습 니 다.
  • pen()은 현재 설 치 된 붓 으로 선 이나 가장자리 의 색 이나 점 화 를 그 리 는 데 사용 된다.
  • backgroundMode()는 Opaque 나 Transparent,즉 backgroundColor()를 사용 하 는 것 입 니 다.
  • 은 backgroundMode()가 Opaque 이 고 pen()이 점 화 될 때 만 backgroundColor()가 적용 되 며 점 화 에서 배경 픽 셀 의 색 을 묘사 합 니 다.
  • rasterOp()은 픽 셀 그리 기와 이미 존재 하 는 픽 셀 이 어떻게 상호작용 하 는 지 입 니 다.
  • brushOrigin()은 평평 하 게 깔 린 브러시 의 원점 으로 보통 창의 원점 이다.
  • viewport(),window(),worldMatrix()와 많은 다른 것들 이 그리 기 도구 의 좌표 변환 시스템 을 구성 했다.이것 에 대한 설명 은 좌표 시스템 을 참고 하거나 아래 의 함수 에 관 한 매우 간단 한 개술 을 참고 하 시기 바 랍 니 다.
  • clipping()은 그리 기 도구 의 재단 여 부 를 말 합 니 다.(그리 기 장치 도 재단 합 니 다.)도구 재단 을 그립 니 다.클립 리 온()으로 재단 합 니 다.
  • pos()는 현재 위치 로 moveto()를 통 해 설정 하고 lineTo()를 통 해 사용 합 니 다.

  • 이 설정 들 중 일 부 는 QWidget:font()와 같은 그리 기 장치 설정 에 미 러 가 있 음 을 주의 하 십시오.QPainter::begin()(또는 QPainter 의 구조 함수)은 그리 기 장치 에서 이 속성 을 복사 합 니 다.호출,예 를 들 어 QWidget:setFont()은 도구 가 그 위 에 그 려 질 때 까지 유효 합 니 다.
    이 모든 설정 을 내부 스 택 에 저장 하고 restore()를 꺼 냅 니 다.
    QPainter 의 핵심 기능 은 그리 기 입 니 다.그리고 가장 간단 한 그리 기 함수:drawPoint(),drawPoints(),drawLine(),drawRect(),drawWinFocusRect(),drawRoundRect(),drawEllipe(),drawArc(),drawPie(),drawChord(),drawLine Segments(),drawPolyline(),drawConvexPolygon(),drawCubicBezier()가 있 습 니 다.모든 이 함수 들 은 정수 좌 표를 사용 합 니 다.부동 소수점 버 전이 없습니다.가능 한 한 빨리 그리 고 싶 기 때 문 입 니 다.
    픽 셀 맵/그림 을 그 리 는 함수 가 있 습 니 다.drawPixmap(),drawImage(),drawTiledPixmap()입 니 다.drawPixmap()과 drawImage()는 같은 결 과 를 얻 습 니 다.drawPixmap()을 제외 하고 화면 에서 더 빠 르 고 drawImage()는 QPrinter 와 QPicture 에서 더 빠 르 고 때로는 더 좋 습 니 다.
    drawText()를 사용 하면 텍스트 그리 기 를 완성 할 수 있 으 며,좋 은 위치 가 필요 할 때,boundingRect()는 주어진 drawText()명령 이 그 려 질 곳 을 알려 줍 니 다.
    그림%1 개의 캡 션 을 편 집 했 습 니 다.drawPicture()는 모든 그리 기 도구 설정 을 무시 하 는 유일한 함수 입 니 다.QPicture 는 자신의 설정 이 있 습 니 다.
    보통 QPainter 는 장치 자체 의 좌표 시스템(보통 픽 셀)에서 작 동 하지만 QPainter 도 좌표 변환 을 잘 지원 한다.더 통용 되 는 개술 과 간단 한 실례 는 좌표 시스템 을 참고 하 십시오.
    가장 많이 사용 되 는 함 수 는 scale(),rotate(),translate(),shear()입 니 다.이 모든 것 은 worldMatrix()에서 작 동 합 니 다.setWorldMatrix()는 현재 설정 한 WorldMatrix()를 교체 하거나 추가 할 수 있 습 니 다.
    setViewport()는 QPainter 작업 의 사각형 을 설정 합 니 다.기본적으로 전체 장치 입 니 다.프린터 를 제외 하고 좋 습 니 다.setWindow()는 좌표 시스템 을 설정 합 니 다.viewport()에 비 친 사각형 입 니 다.window()에 그 려 진 것 은 결국 view port()에 있 습 니 다.창의 기본 값 은 시각 과 같 고 변환 을 사용 하지 않 으 면 최적화 되 어 약간의 속 도 를 얻 을 수 있 습 니 다.
    모든 좌표 변환 이 완료 되면 QPainter 는 그림 을 임의의 사각형 이나 영역 으로 자 를 수 있 습 니 다.QPainter 가 자 르 면 hasClipping()이 진짜 이 고 clipRegion()은 자 르 기 영역 으로 돌아 갑 니 다.setClipRegion()이나 setClipRect()를 사용 하여 설정 할 수 있 습 니 다.재단 에 주의 하 는 것 은 매우 느리다.그것 은 시스템 에 완전히 의존 하지만 경험 적 인 방법 만 으로 는 그 리 는 속도 와 재단 구역 의 사각형 수량 이 반비례 한다 고 가정 할 수 있다.
    QPainter 의 재단 후 그리 기 장치 도 재단 할 수 있 습 니 다.예 를 들 어 대부분의 창 위 젯 은 하위 창 위 젯 의 픽 셀 에 따라 자 르 고 대부분의 프린터 는 종이 에 가 까 운 가장자리 에 따라 자 릅 니 다.이 다른 재단 들 은 클립 리 온()이나 hasClipping()의 반환 값 에 영향 을 받 지 않 습 니 다.
    QPainter 도 비교적 적 게 사용 되 는 함 수 를 포함 하 는데 그들 은 필요 할 때 매우 유용 하 다.
    isActive()는 그리 기 도구 가 활성화 되 었 는 지 알려 줍 니 다.begin()(가장 많이 사용 되 는 구조 함수 와)을 활성화 합 니 다.end()(분석 함수 와)방출 합 니 다.그림 그리 기 도구 가 활성화 되 어 있 으 면 device()는 그림 그리 기 도 구 를 되 돌려 줍 니 다.
    때때로 다른 것 을 평범 하지 않 은 QPaintDevice 에 그 리 는 것 은 사람들 이 원 하 는 것 이다.QPainter 는 정적 함 수 를 지원 합 니 다.redirect().우 리 는 그것 을 사용 하지 말 라 고 건의 하지만,일부 베테랑 들 에 게 는 완벽 하 다.
    setTabStops()와 setTabArray()는 tab 가 어디에서 멈 추 는 지 바 꿀 수 있 지만 거의 사용 되 지 않 습 니 다.
    경고:QPainter 는 바 텀 창 시스템 의 왼쪽 에서 주변 작업 을 제한 하려 고 하지 않 습 니 다.좌표 가+/-4000 일 때 일부 플랫폼 의 행동 이 정확 하지 않 을 수 있 습 니 다.
    QPaintDevice,QWidget,QPixmap,QPrinter,QPicture,응용 프로그램 예행연습,좌표 시스템 개요,이미지 류 와 이미지 처리 류 를 참고 하 십시오.

    좋은 웹페이지 즐겨찾기