Вопрос

Я на 99%, это невозможно, так как Python скомпилирован первым байтом, тогда, вероятно, открывает Windows TK, но мне интересно, есть ли какие -либо обстоятельства, чтобы добавить кнопку, чтобы обновить ваше приложение TK на месте после сохранения приложения его На самом деле написано в?

Вы можете себе представить после обновления заполнения или некоторого незначительного атрибута, было бы так здорово просто нажать кнопку, чтобы обновить кадр вместо закрытия и запуска нового экземпляра.

что-нибудь...

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()
Это было полезно?

Решение

Вау, я понял это. Я сделал две сети. Один, чтобы импортировать, а другой, чтобы обновить.

Ну вот:

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

Другие советы

Это точно не отвечает на вопрос, но дает путь к заявленной цели

первый easy_install q

тогда

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

в этот момент открывается оболочка, и вы можете сделать что -то вроде

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

Затем ваше приложение возобновится с обновленными параметрами.

Есть и другие варианты, такие как Pycrust, которые открывают интерактивную оболочку, которая может не блокировать основной цикл и, вероятно, включать в себя некоторые дополнительные функции ... но q.d() в моем опыте самый простой, чтобы просто бросить

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top