2014-07-10 2 views
4

화면의 선택된 영역에서 스크린 샷을 찍으려는 Qt 응용 프로그램을 만들려고합니다. 현재 QRubberBand를 사용하여 화면 영역을 선택하고 있습니다. 이렇게 작동합니다. 캡처 버튼 오버레이 투명 위젯이 나는 투명 위젯 영역을 선택 QRubberBand을 사용하고 Qt에서 선택한 영역 (QRubberBand)에서 스크린 샷 찍기

  • (전체 화면하지만 프레임없이) 팝업됩니다 클릭

    1. .

    이제 선택한 파트의 스크린 샷을 찍어야합니다.

    나는이에 QRubberBand을 선택에서 내가 얻는 차원을 통과해야 생각하고 :

    screen->grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1);

    그래서 어떻게 내가 QRubberBand에서 필요한 정보를 얻을 수 있습니까? 나는 여기 붙어있어, 누군가 나를 도와주세요!

  • 답변

    2

    OnMouseRelease 이벤트에서는 을 사용하여 QRubberBand의 rect를 얻을 수 있습니다. 다음으로 QRect::getRect을 사용하면 사각형의 왼쪽 위 모서리 위치를 x 및 y로 추출하고 치수를 폭 및 높이로 추출 할 수 있습니다. :

    const QRect & selectRect = mRubberBand->geometry(); 
    int x, y, width, height; 
    selectRect.getRect(&x, &y, &width, &height); 
    
    +0

    감사합니다. 그러나 이제 스크린 샷을 저장하려고 할 때 QRubberBand를 사용하여 선택한 부분조차도 화면의 일부만 차지합니다. – defiant