사용자 정의 모서리를 고정하는 동안 QPushButton 하위 클래스의 크기를 변경하려고합니다 (항상 왼쪽 위 모퉁이가 아님). QPushButton은 QFrame을 부모로 정의하고 윈도우에서 자유롭게 움직입니다. 하위 클래스 코드에서 QPushButton 하위 클래스의 크기를 변경하려고하면 mouseEvents에서 제공 한 QPoint가 로컬이므로 문제가 발생한다고 생각합니다. myButton-> mapToGlobal (QPoint) 및 myButton-> mapFromGlobal으로 작업을 시도했지만 어떻게 작동하는지 잘 알지 못합니다. 예제를 검색하면 나를 빈손으로 남겨 두었습니다. 누구든지 간단한 예를 제공 할 수 있습니까?Qt QPoint 전역/로컬 매핑
5
A
답변
12
로컬 (위젯) 좌표는 위젯의 왼쪽 위 모서리를 기준으로합니다. 전역 좌표는 화면 좌표입니다. 그들은 쉽게 변환 가능하며, QMouseEvent와 같은 이벤트는 local (pos()) 및 global (globalPos()) 좌표를 제공합니다.
const QPoint localInB = a->mapTo(b, localPosInA);
예 : 당신이에서 최상위 위젯 (W1)을 말해봐 (100110)는 B를 위젯 위젯 A로부터 매핑하려면 , 당신은 짧은
const QPoint global = a->mapToGlobal(localPosInA);
const QPoint localInB = b->mapFromGlobal(global);
할 또는 수 있습니다 (10, 10) (w1 좌표)에 자식 위젯 w2와 (20, 20) (w2 좌표)에 w2의 마우스 이벤트가있는 화면 좌표 (화면 좌표)이면 마우스 커서의 전역 위치는
(100,110) + (10,10) + (20,20) = (130,140) (화면 좌표)
w2-> mapToGlobal (mousePos)입니다.
W2-> W2의 부모 W1 같이 mapTo (W1, mousePos)이되거나, W2-> mapToParent (mousePos) 인
(10,10) + (20, 20) = (30, 30) (w1 좌표).
모든 것을 전역 좌표로 변환하고 거기에서 계산을 한 다음 결과를 위젯, 즉 필요한 상황에 다시 매핑하는 것이 가장 쉽습니다.
관련 문제
- 1. Qt 용 매핑 위젯
- 2. Qt 및 JavaScript 매핑 데이터
- 3. Qt : 경계선없는 위젯 크기 조정
- 4. Qt C++에서 배열에 동적으로 메모리를 할당하려면 어떻게합니까?
- 5. Qt 작성자 C++, 무효 값이 무시되지 않음
- 6. QT
- 7. Qt
- 8. QT
- 9. 다차원 매핑 NHibernate 매핑
- 10. 매핑 및 역방향 매핑
- 11. 매핑
- 12. Qt : 숨겨진 위젯이 레이아웃을 계산하도록 강제하는 방법?
- 13. Qt : 맞춤 위젯을위한 이미지 리소스를 올바르게 저장하십시오.
- 14. QT : QT :: keyRelease를 사용할 때
- 15. 내가 QT 새로운 오전 .. QT
- 16. Qt/C++ : QTableView 컨텍스트 메뉴 및 정보 전달
- 17. Qt 디자이너에서 Qt 4.8 QWidget을 Qt Designer의 QTabWidget으로 바꾸는 방법
- 18. Qt - 마우스 화면 찾기 x, y - 응용 프로그램 종료도
- 19. Qt : Qt 질문에 대한 새로운 학생
- 20. Qt for Symbian VS. MeeGo 용 Qt
- 21. Qt : Qt 스크립트를 사용하여 UI 요소 추가
- 22. Nokia Qt SDK 및 Qt Mobility API
- 23. qt 플러그인이로드되지 않습니다 ("유효한 Qt 플러그인이 아닙니다")
- 24. 내 프로젝트에 qt 및 qt 이동성을 추가하십시오.
- 25. Qt Creator/Qt 임베디드 위젯 데모
- 26. Nokia Qt SDK와 Qt SDK의 차이점은 무엇입니까?
- 27. Qt QGraphicsView는 스케일 원점으로 topleft를 사용합니다.
- 28. Qt 애니메이션
- 29. Qt ClickToFlash
- 30. 초보자를위한 QT