2009-09-30 5 views
3

내장 된 장치의 화면 (기본 QWidget 위에 사용자 정의 위젯 포함)의 시뮬레이션을 작성하고 화면의 기본 크기는 800x600이지만 원하는대로 만들 수 있습니다. 창 구석을 드래그하여 위아래로 크기를 조정하십시오. 격자 레이아웃과 들것 (글꼴을 위/아래로 확장하지 않음)을 사용하지 않고이 종류 줌을 수행하려면 어떻게해야합니까? 나는 해결책의 일부가 QTransform을 생성하고 어떻게 든 그것을 전체 애플리케이션 또는 QPaintDevice 또는 QPaintEngine을위한 QWidget에 주입 할 것이라고 생각한다. 각 사용자 정의 위젯에 QTransform을 넣지 않고이 작업을 수행하고 싶습니다. 단지 "기본 창"QWidget입니다.Qt 응용 프로그램의 확장 가능한 그림

답변

5

을 기본 표시 위젯으로 사용하는 경우 이 가능합니다. QGraphicsScene은 위젯을 내용으로 지원하므로 문자 그대로 확장 할 수 있습니다.

나는 대신 위젯마다 paint()를 다시 구현하고 자식 위젯을 그리기 전에 수동으로 변형/크기를 설정한다고 생각한다.

+1

이것은 훌륭하게 작동합니다. - 감사합니다! 내가 한 일에 대한 자세한 내용은 다음과 같습니다. 먼저 QGraphicsView에 QGraphicsScene을 표시하는 지침을 따르십시오. 확대/축소 효과를 얻으려면 QGraphicsView에서 파생되고 'fitInView (items() [0]);'을 호출하여 resizeEvent()를 재정의하십시오. 챔피언처럼 작동합니다! (투표를하기에 충분한 담당자가 아직 없다 - 미안). – Scott

+0

당신은 그의 대답을 정확하게 표시 할 수 있습니다. – chrism1

+0

죄송합니다. 1 년이 넘었습니다 ... – Scott

0

생각 해보지 못한 비트이지만 ... QGraphicsView에 최상위 위젯을 넣고 크기 조정을 수행 할 수 있습니다. 그런 다음 QGraphicsView에서 OpenGL을 활성화하고 하드웨어에서 크기를 조정하여 빠르고 멋지게 만들 수 있습니다.

관련 문제