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. AutoHotKey mapeo
- 4. "Mapeo" scanl
- 5. Qt - Determine el widget absoluto y la posición del cursor
- 6. ¿Mapeo simple Java Xml a POJO mapeo/encuadernación?
- 7. mapeo tipo por plantillas
- 8. Caracteres de mapeo CoreText
- 9. Fluidez Nhibernate Enum Mapeo
- 10. Matemáticas - números de mapeo
- 11. columnas de MyBatis mapeo
- 12. Configuración de mapeo IRQ
- 13. mapeo App Engine URL
- 14. Dapper sencilla mapeo
- 15. AutoMapper mapeo complejo
- 16. Java: JAX-WS Mapeo
- 17. mapeo bidireccional de Python
- 18. mapeo 4d en C++?
- 19. AutoMapper: mapeo parcial
- 20. Dapper Edición Multi-mapeo
- 21. sqlalchemy mapeo dinámico
- 22. Grails Enum 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. Profundidad de mapeo de AutoMapper
- 29. Mapeo sobre sublistas en Scala
- 30. PHP mapeo de matriz perezosa