¿Cuál es la diferencia entre QMainWindow, QWidget y QDialog?¿Cuál es la diferencia entre QMainWindow, QWidget y QDialog?
79
A
Respuesta
81
A QWidget
es la clase base para todas las clases dibujables en Qt. Cualquier clase basada en QWidget
se puede mostrar como una ventana al mostrarla cuando no tiene un elemento primario.
A QDialog
se basa en QWidget
, pero está diseñado para mostrarse como una ventana. Siempre aparecerá en una ventana y tiene funciones para que funcione bien con botones comunes en los diálogos (aceptar, rechazar, etc.).
QMainWindow
está diseñado según las necesidades comunes de una ventana principal. Tiene lugares predefinidos para una barra de menú, una barra de estado, una barra de herramientas y otros widgets. No tiene ningún permiso incorporado para botones como QDialog
.
Cuestiones relacionadas
- 1. ¿Cuál es la diferencia entre {0} y ""?
- 2. Cuál es la diferencia entre = y: =
- 3. ¿Cuál es la diferencia entre .ToString (+) y ""
- 4. Cuál es la diferencia entre $ (...) y `...`
- 5. ¿cuál es la diferencia entre:.! y: r !?
- 6. ¿Cuál es la diferencia entre ".equals" y "=="?
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 9. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 10. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. ¿Cuál es la diferencia entre " " y ""?
- 13. Cuál es la diferencia entre $ y jQuery
- 14. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 15. Cuál es la diferencia entre la función() {}() y la función() {}()
- 16. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 17. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 18. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 19. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 20. ¿Cuál es la diferencia entre el colado y la coerción?
- 21. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 22. ¿Cuál es la diferencia entre el casting y la conversión?
- 23. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 24. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 25. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 26. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 27. ¿cuál es la diferencia entre el material y la textura?
- 28. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 29. ¿Cuál es la diferencia entre la carpeta vim72 y vimfiles?
- 30. ¿cuál es la diferencia entre la lex y yacc
He buscado esta pregunta, pero esa no es realmente la respuesta que estaba esperando. En QtDesigner usando QMainWindow le da una barra de menú y una barra de estado. Cuando escribe el código usted mismo y utiliza QMainWindow, no tiene estas cosas. O diciendo que puedes hacer algo como window.addToolBar ("Toolbar"); y lo colocará en un lugar predefinido sin ningún otro dolor de cabeza? –
@MoraruLilian: en realidad, no uso QMainWindow, así que no sé los detalles. Como dije en mi respuesta, sé que tiene lugares para ellos, por lo que hacerlo en código podría ser tan simple como usted indique. –
@Caleb_Huitt Hace lo que digo. Quería aclarar si eso es lo que intentas decir. De todos modos, recomendaría siempre usar QWidget en lugar de QMainWindow. Puede tener problemas, por ejemplo, al configurar otro Layout. Si desea establecer un nuevo diseño en QMainWindow, debería crear un QWidget y configurarlo como un widget central para QMainWin y justo en QWidget podría establecer Layout (QLayout *). Si bien puedes evitar dolores de cabeza adicionales solo con QWidget. Claro, QMainWindow ofrece una configuración sencilla de ToolBar y StatusBar, pero puede hacerlo usted mismo en QWidget ... –