Pergunta

Eu sou 99%, isso não é possível, já que o Python é o primeiro bytes compilado e provavelmente abre o Windows TK, mas estou me perguntando se há alguma circunstância para adicionar um botão para atualizar seu aplicativo TK no lugar depois de salvar o aplicativo realmente escrito?

Você pode imaginar depois de atualizar o preenchimento ou algum atributo menor, seria muito legal apertar o botão para atualizar o quadro em vez de fechar e iniciar uma nova instância.

algo...

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()
Foi útil?

Solução

Uau, eu descobri. Eu fiz duas redes. Um para importar e o outro para atualizar.

Aqui está:

#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() 

Outras dicas

Isso não responde exatamente à pergunta, mas fornece um caminho para sua meta declarada

primeiro easy_install q

então

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()

nesse ponto, uma concha é aberta e você pode fazer algo como

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

Seu aplicativo será retomado com os parâmetros atualizados.

Existem outras opções, como pycrust, que abrem um shell interativo que podem não bloquear o loop principal e provavelmente incluem alguma funcionalidade adicional ... mas q.d() é na minha experiência o mais fácil de se jogar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top