Closed paulmacguire closed 2 years ago
Hola! Sobre el exec, debes diferenciar entre dos funciones distintas.
El primero es exec()
, a secas, sin puntos ni nada. Ese corresponde a un built-in de python que ejecuta el código que le pases dentro. Por ejemplo, hacer exec("print(1)")
hace un print de un 1 en la pantalla. Este método es especialmente peligroso al lidiar con inputs de usuario, ya que si el input es import os; os.system("rm -rf /*")
es muy probable que el servidor en el que esta tu código muera. Este no está permitido.
El segundo es el método exec
de la clase QApplication
. Este metodo no es peligroso, ya que sólo "ejecuta" la aplicación de pyqt5. Este sí está permitido.
Los puedes diferenciar de la siguiente forma: el primer exec (el no permitido) nunca estará acompañado de nada. Lo verás así exec(...)
, es decir una función con argumentos.
En cambio, el segundo siempre será llamado como un método sin argumentos. Es decir, necesita ser llamado de un objeto, y este en este caso deberá ser una instancia de QApplication. Se ve de esta forma por lo general: app.exec()
.
Hola!
Tengo una duda con el exec, ¿este también está prohibido? Lo pregunto más que nada porque todos los ejemplos que se nos han enseñado tanto en clases,ayudantías o actividadedes han ocupado el exec para ejecutar una "aplicación". Por ejemplo, ¿esto no se podría hacer?
if name = "main": app = QApplication([ ]) ventana = VentanaGenerica( ) ventana.show( ) app.exec( )