2016-07-08 4 views
4

Qt에서 변경 빈도가 높은 "캔버스"를 만드는 가장 효과적인 방법은 무엇입니까?변경 가능한 Qt 캔버스에 가장 적합한 방법

QPixmap *canvas = new QPixmap(500, 500); 
QLabel *area = new QLabel(this); 
area->setPixmap(canvas); 

문제는 내가 픽스맵에 모든 변경 후 area->setPixmap(canvas);를 호출해야한다는 것입니다 :

은 현재 내가 메인 응용 프로그램 창 나는 QPixmap을 만들고 QLabel로 설정 (는 QWidget)가 그래서 그것은 표시 될 수 있습니다 (저는 매초마다 몇 가지 변화가있을 것이라고 계산합니다). 이 방법은 괜찮습니까? 아니면 더 나은/더 빠르고 효율적인 솔루션이 있습니까?

+0

캔버스에 무엇을 그리나요? – peppe

+0

@peppe 주로 텍스트입니다. –

+1

몇 가지 QGraphicsItems가있는 QGraphicsScene이 더 많은 의미를 가질 수 있습니다. 특히 점진적 변경 사항이고 각 업데이트마다 모든 것이 변경되는 것은 아닙니다. – PeterT

답변

2

PeterT와 Jeremy는 모두 좋은 해결책을 가지고 있습니다. 어느 것이 가장 적합한지는 당신의 필요에 달려 있습니다.

항목을 이동하고 변경하는 경우 QGraphicsScene을 사용하여 표시하려는 데이터를 저장하고 쉽게 조작 할 수 있습니다. 결과를 표시하려면 QGraphicsView을 사용하십시오.

이미 QPixmap으로 다른 렌더링을하고 단지 QWidget를 서브 클래스 간단 할 수있다 QPainter를 사용하여 paintEvent에 그리기, 결과를 그리려는 경우. 그래도 update()으로 전화하십시오!

관련 문제