Pregunta

Tengo un 99%, esto no es posible ya que Python se compila primero en byte y luego probablemente abre las ventanas de TK, pero me pregunto si hay alguna circunstancia para agregar un botón para actualizar su aplicación TK en su lugar después de guardar la aplicación, su aplicación es realmente escrito en?

Puede imaginarse después de actualizar el relleno o algún atributo menor, sería genial presionar el botón para actualizar el marco en lugar de cerrar y comenzar una nueva instancia.

alguna cosa...

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="Refresh",command=lambda root=self.root:refresh_me(root)))
 def refresh_me(self,root):
     #refresh the window I'm in somehow...
root = Tkinter.Tk()
myapp = myapp(root)
root.mainloop()
¿Fue útil?

Solución

Vaya, lo descubrí. Hice dos platos principales. Uno para importar y el otro para actualizar.

Aquí tienes:

#name of file is python_script.py

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="REFRESH",command=lambda self=self:self._update())

 def _update(self):
   import python_script
   python_script.main_refresh(self.root,python_script)

def main_refresh(root,python_script):
   reload(python_script)
   root.destroy()
   python_script.main()

def main():
   root = Tkinter.Tk()
   myapp = myapp(root)
   root.mainloop()

if __name__ == '__main__':
   main() 

Otros consejos

Esto no responde exactamente a la pregunta, pero proporciona un camino a su objetivo declarado.

primero easy_install q

después

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="Refresh",command=lambda root=self.root:refresh_me(root)))
 def shell_me(self,root):
     #refresh the window I'm in somehow...
     import q
     q.d()

En ese momento se abre un caparazón y puedes hacer algo como

>>> myapp.padding = "10px" #or whatever you are trying to modify
>>> exit()

Su aplicación luego se reanudará con los parámetros actualizados.

Hay otras opciones como Pycrust que abren una carcasa interactiva que puede no bloquear el bucle principal y probablemente incluyen alguna funcionalidad adicional ... pero q.d() es en mi experiencia el más fácil de tirar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top