Estoy tratando de cambiar las dimensiones de una subclase QPushButton mientras ancla una esquina definida por el usuario (no siempre la esquina superior izquierda). QPushButton define un QFrame como su elemento primario y flota libremente en la ventana. Cuando trato de cambiar el tamaño de la subclase QPushButton en el código de la subclase, creo que me está causando problemas ya que los QPoints proporcionados por mouseEvents son locales. He intentado trabajar con myButton-> mapToGlobal (QPoint) y myButton-> mapFromGlobal, pero no creo que entiendo cómo funcionan. Una búsqueda de ejemplos me ha dejado con las manos vacías. ¿Alguien puede dar un pequeño ejemplo?Mapeo global/local Qt QPoint
Respuesta
Las coordenadas locales (widget) son relativas a la esquina superior izquierda del widget. Las coordenadas globales son coordenadas de pantalla. Son fácilmente convertibles, y eventos como QMouseEvent ofrecen tanto coordenadas locales (pos()) como globales (globalPos()). Si desea asignar a partir Widget A a artefacto B, puede hacer
const QPoint global = a->mapToGlobal(localPosInA);
const QPoint localInB = b->mapFromGlobal(global);
O, más corto:
const QPoint localInB = a->mapTo(b, localPosInA);
Ejemplo: Supongamos que tiene un W1 widget de alto nivel al (100110) (coordenadas de pantalla), que tiene un widget infantil w2 en (10,10) (coordenadas w1) y un evento de mouse en w2 en (20, 20) (coordenadas w2), luego la posición global del cursor del mouse es
(100,110) + (10,10) + (20,20) = (130,140) (coordenadas de pantalla)
Eso es w2-> mapToGlobal (mousePos).
W2-> mapTo (w1, MousePos) o, como w1 es el padre de w2, W2-> mapToParent (MousePos) es
(10,10) + (20,20) = (30,30) (coordenadas w1).
Puede ser más fácil si convierte todo a coordenadas globales, haga los cálculos allí y luego asigne el resultado al widget, es decir contexto en el que lo necesita.
- 1. Dapper mapeo mapeo intermedia
- 2. Gráficos 3D: mapeo normal vs mapeo Bump?
- 3. "Mapeo" scanl
- 4. AutoHotKey mapeo
- 5. Qt - Determine el widget absoluto y la posición del cursor
- 6. ¿Mapeo simple Java Xml a POJO mapeo/encuadernación?
- 7. Matemáticas - números de mapeo
- 8. Configuración de mapeo IRQ
- 9. sqlalchemy mapeo dinámico
- 10. mapeo tipo por plantillas
- 11. AutoMapper: mapeo parcial
- 12. AutoMapper mapeo complejo
- 13. columnas de MyBatis mapeo
- 14. Grails Enum Mapeo
- 15. Dapper sencilla mapeo
- 16. mapeo 4d en C++?
- 17. mapeo App Engine URL
- 18. Caracteres de mapeo CoreText
- 19. mapeo bidireccional de Python
- 20. Java: JAX-WS Mapeo
- 21. Fluidez Nhibernate Enum Mapeo
- 22. Dapper Edición Multi-mapeo
- 23. Qt Quick vs. Qt Widget
- 24. Qt/C++: Obteniendo los datos en una celda determinada en un QTableView
- 25. Qt/C++: dibujo eficientemente
- 26. Almacenar la configuración de la aplicación qt usando QSettings
- 27. Qt: ¿Cómo forzar un widget oculto para calcular su diseño?
- 28. Mapeo de Matemáticas y Javascript
- 29. Profundidad de mapeo de AutoMapper
- 30. Java Mapeo de tipos mixtos